2012-07-27 3 views
4

다음과 같이 내 모델 클래스의 속성에 주석을 추가했습니다.ASP.NET MVC 모델 바인딩 - JSON 속성 및 C# 모델 속성에 대한 다른 이름

[DataMember(Name = "EN")] 
public string EmployeeName{ get; set; } 

전체적으로 컴팩트 한 JSON (JSON.NET 시리얼 라이저를 사용하여 직렬화)입니다.

그러나 이러한 작은 이름을 포함하는 JSON이 POST 또는 PUT 요청을 사용하여 컨트롤러에 전달되면 ASP.NET MVC 모델 바인딩은 "EN"JSON 속성을 EmployeeName으로 올바르게 매핑 할 수 없습니다. JSON에서는 EmployeeName이 필요합니다.

이 문제를 해결하는 방법에 대한 의견이 있으십니까?

답변

4

너는 그 상자 밖에서 할 수 없다. 이 문제를 해결하는 방법은 두 가지입니다. 하나는 뷰 모델의 속성 이름 변경 (결국 보기 모델이므로 제한 사항에 대처해야합니다) 또는 DataMember 주석을 고려한 자신의 ModelBinder을 작성할 수 있습니다. 바인딩 속성