POST 메서드로 클라이언트가 보낸 multipart/form-data
을 받아 들일 필요가있는 컨트롤러 메서드가 있습니다. 양식 데이터에는 2 개의 부분이 있습니다. 하나는 application/json
로 일련 번호가 지정된 개체이고 다른 한 부분은 application/octet-stream
으로 전송 된 사진 파일입니다.ASP.NET MVC.
[AcceptVerbs(HttpVerbs.Post)]
void ActionResult Photos(PostItem post)
{
}
내가 PostItem가 null here.However 문제없이 Request.File
를 통해 파일을 얻을 수 있습니다 :이처럼 내 컨트롤러 방법이있다. 이유가 확실하지 않습니다. 어떤 아이디어
컨트롤러 코드 :
/// <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를 사용하고있다. – openbytes