0
json에서 3 단계 중첩 모델 바인딩이 작동하지 않는 이유는 무엇입니까?ASP.NET MVC 3 Json 모델 바인딩 3 수준 개체
레벨 2 테스트, 예를 들어 LevelTwo에 문자열 속성 추가가 작동하지만 3 레벨이 나지 않습니다. 디자인에 의한 것입니까, 버그입니까, 아니면 뭔가 빠졌습니까?
클라이언트 측의 jQuery 게시물 :
$.ajax({
url: "MyController/MyAction",
dataType: "json",
type: "POST",
cache: false,
data: {
Level1: {
Level2: {
StringValue: "Test"
}
}
}
});
서버 측 모델 :
public class MyForm
{
public LevelOne Level1 { get; set; }
}
public class LevelOne
{
public LevelTwo Level2 { get; set; }
}
public class LevelTwo
{
public string StringValue { get; set; }
}
Doh! 감사! 나는 dataType : "json"이 모두 필요하다고 가정했다. 아시다시피, 가정은 모두의 어머니입니다 ... – MatteS
@MatteS,'dataType : 'json''은 요청이 아닌 응답 내용 유형을 나타냅니다. 또한 서버가 application/json에 적절한 Content-Type 응답 헤더를 보내는 경우에도 jQuery가 자동으로 추론하므로 필요하지 않습니다. Ajax 요청에서이 매개 변수를 생략 할 수 있습니다. –
예. 이것은 내가 돌아가서 dataType 옵션이 코드베이스에서 시작하도록 추가 된 이유를 상기시켜 주며 "Accept : application/json, text/javascript, */*;"헤더를 추가하는 것이 중요 할 것입니다. 요청에, 그리고 우리의 오류 처리 논리가 좋아하는 것이있다. – MatteS