Как выглядит класс FeedItem
? То, что я вижу в информации поста, должно выглядеть примерно так:
public class FeedItem
{
public int UserId { get; set; }
public int GroupId { get; set; }
public string PublishTo { get; set; }
public string PostType { get; set; }
public DateTime CreatedTime { get; set; }
}
В противном случае оно не будет связано. Вы можете попробовать изменить сигнатуру действия и посмотреть, работает ли это:
[HttpPost] //AcceptVerbs(HttpVerbs.Post) is a thing of "the olden days"
public ActionResult Photos(int UserId, int GroupId, string PublishTo
string PostType, DateTime CreatedTime)
{
// do some work here
}
Вы даже можете попытаться добавить параметр HttpPostedFileBase
к своему действию:
[HttpPost]
public ActionResult Photos(int UserId, int GroupId, string PublishTo
string PostType, DateTime CreatedTime, HttpPostedFileBase file)
{
// the last param eliminates the need for Request.Files[0]
var processor = new ActivityFeedsProcessor();
processor.ProcessFeed(feedItem, file);
}
И если вы действительно чувствуете себя диким и непослушным, добавьте HttpPostedFileBase
к FeedItem
:
public class FeedItem
{
public int UserId { get; set; }
public int GroupId { get; set; }
public string PublishTo { get; set; }
public string PostType { get; set; }
public DateTime CreatedTime { get; set; }
public HttpPostedFileBase File { get; set; }
}
Этот последний фрагмент кода, вероятно, является тем, чем вы хотите закончить, но пошаговая разбивка может помочь вам в этом.
Этот ответ также может помочь вам в правильном направлении: ASP.NET MVC передает модель * вместе * с файлами обратно в контроллер