2014-11-26 1 views
4

Visual Studio 2015 미리보기에서 json 객체를 MVC에 게시하려고합니다. 그러나 데이터가 조치 메소드 매개 변수에 바인드되지 않는 것 같습니다. 이전에는 JsonValueProviderFactory가이 버전을 처리했지만 MVC6에서 찾을 수없는 것 같습니다. 설치가 변경 되었습니까? 이전 버전에서 바로 사용할 수 있습니까? ,MVC에서 JSON 데이터를 게시하는 방법 Visual Studio 2015

var personData = { Name : 'John Doe' }; 
$.ajax({ 
     url: '@Url.Content("~/Person/Save")', 
     type: "POST", 
     data: JSON.stringify(personData), 
     dataType: "json", 
     contentType: "application/json; charset=utf-8" 
    }) 

MVC 이전 버전의 JSON 개체가 C#을 매개 변수에 매핑되었습니다

기본적으로 내가 자바 스크립트에서 호출하기 위해 노력하고있어 컨트롤러 방법

public ActionResult Save(Person person) 
{ 
    ... 
} 

에게 있습니다 이 기사를보십시오 http://webcognoscere.com/post/How-to-POST-a-JSON-object-to-a-Controller-Action.aspx

+0

일부 코드를 표시 하시겠습니까? MVC의 어떤 빌드를 사용하고 있습니까 (project.json 표시)? – AndersNS

+0

네 말이 맞아, 나는 그 소식을 업데이트했다. Visual Studio 2015 미리보기를 사용하고 있습니다 (정확한 빌드가 배송되었는지는 확실치 않습니다). – Bjorn

답변

8

[FromBody]를 매개 변수에 추가하십시오. MVC 6에서 MVC 및 웹 API의 논리가 하나의 시스템으로 병합되었습니다. 즉, 게시물 본문에서 JSON으로 직렬화 해제해야하는 내용은 액션 메소드의 매개 변수에 명시 적으로 명시해야합니다.

public ActionResult Save([FromBody] Person person) 
{ 
    ... 
}