【发布时间】:2011-07-18 11:55:16
【问题描述】:
我有一个控制器方法需要接受客户端作为 POST 请求发送的multipart/form-data。表单数据有 2 个部分。一个是序列化为application/json 的对象,另一部分是作为application/octet-stream 发送的照片文件。我的控制器上有这样的方法:
[AcceptVerbs(HttpVerbs.Post)]
void ActionResult Photos(PostItem post)
{
}
我可以在这里通过Request.File 毫无问题地获取文件。但是 PostItem 为空。
不知道为什么?任何想法
控制器代码:
/// <summary>
/// FeedsController
/// </summary>
public class FeedsController : FeedsBaseController
{
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Photos(FeedItem feedItem)
{
//Here the feedItem is always null. However Request.Files[0] gives me the file I need
var processor = new ActivityFeedsProcessor();
processor.ProcessFeed(feedItem, Request.Files[0]);
SetResponseCode(System.Net.HttpStatusCode.OK);
return new EmptyResult();
}
}
网络上的客户端请求如下所示:
{User Agent stuff}
Content-Type: multipart/form-data; boundary=8cdb3c15d07d36a
--8cdb3c15d07d36a
Content-Disposition: form-data; name="feedItem"
Content-Type: text/xml
{"UserId":1234567,"GroupId":123456,"PostType":"photos",
"PublishTo":"store","CreatedTime":"2011-03-19 03:22:39Z"}
--8cdb3c15d07d36a
Content-Disposition: file; filename="testFile.txt"
ContentType: application/octet-stream
{bytes here. Removed for brevity}
--8cdb3c15d07d36a--
【问题讨论】:
-
您能在您的视图中发布解码代码吗?你在使用 ASP.NET MVC 1 吗?
-
贴出了上面的代码。我正在使用 MVC3
标签: asp.net-mvc multipartform-data