우리는 MVC에서는, CheckBoxFor
가 value="true"
와 checkbox
과 value=false
와 hidden
를 생성 할 것이라는 점을 알고있다. 두 입력 컨트롤 모두 동일한 이름을 공유합니다.JSON 데이터에 형태의 체크 박스를 직렬화하는 방법
상자가 선택되어 있지 않으면 양식에서 잘못된 값을 POST 할 수 있기 때문에 매우 적합합니다. 그리고 모델 바인더는 확인란이 true를 반환 할 때 숨겨진 입력을 무시합니다.
하지만 이제 양식 데이터를 JSON 형식의 WebAPI 컨트롤러로 보내기 위해 양식 제출 이벤트를 재정의했습니다.
양식 데이터를 직렬화 할 때 확인란과 숨김 간의 관계를 올바르게 구문 분석 할 수있는 메커니즘이 없습니다. 따라서 선택을 취소하면 false
이 반환되며 이는 정상입니다. 그러나이 옵션을 선택하면 serializeArray()
함수가 input
을 거치며 두 값이 같은 이름을 가지기 때문에 true
대신 {true, false}
을 반환합니다.
질문 : 문제를 해결하는 가장 좋은 방법은 무엇입니까?
가능한 복제본 [ASP.Net MVC 4의 WebAPI가 올바르게 확인란을 바인딩하지 않습니까?] (http://stackoverflow.com/questions/11996285/asp-net-mvc-4s-webapi-does-not-bind- 체크 박스 - 올바르게) –