2012-11-08 3 views
2

ASP.Net MVC 4 웹 API에서 JSON 출력 포맷 이 같은 속성 :내가 같이 모델과 웹 API 프로젝트가

first_name 
last_name 

JSON 포매터의 일종을 통해 전 세계적으로이 작업을 수행 할 수있는 방법이 있나요, 아니면 적절한 케이스와 별도의 뷰 모델 클래스를 생성하는 것이 좋습니다?

답변

0

여러 가지 이유로 인해 별도의 viewmodel 클래스를 만들어야합니다.

모델을 과다 노출시키지 않도록 별도의 viewmodel 클래스를 사용하는 것이 가장 좋습니다. 10 개의 필드를 뷰 모델로 사용하는 엔티티 클래스를 사용하고 그 중 5 개만 노출하려는 경우 악의적 인 사용자가 쿼리 문자열을 사용하여 추가 데이터를 게시 할 수 있으며 자동 바인드가 실현되지 않고이를 융합 할 수 있습니다 .

예제의 경우 완전히 다른 이름을 필드에 사용할 수 있습니다. 이것은 엔티티 클래스를위한 커스텀 뷰 모델을 만들기위한 완벽한 후보입니다.

이러한 우려 사항을 분리하면 향후 애플리케이션 재사용이 용이 해지고 현재 테스트/디버그가 더욱 쉬워집니다. 너무 많은 뷰 모델이있는 상황에서 이러한 여러 컨트롤러, 뷰 및 모델을 개별 영역 (blog on areas)으로 분해하는 것을 고려하십시오.

JSON 형식을 지정하려는 경우 일반적으로 JSON serializer 클래스를 편집하는 것이 큰 노력이기 때문에 JSON을 형식화하려면 javascript보다는 손쉽게 수행하는 것이 좋습니다. 스크립트를 작성하여 낙타 사례를 소문자로 구분 된 _으로 자동 변환 할 수 있습니다. 그렇게하는 것의 단점은 만약 당신이 그런 기능을 수행 할 것으로 기대하지 않는다면 의도하지 않은 영향을 미칠 수 있다는 것입니다.

관련 문제