문제

간단한 추가/편집 양식이 있고 클라이언트 측 유효성 검사 (JQuery/MicrosoftMvcjQueryValidation.js)를 사용하는 문제가 발생하여 데이터 주석에서 생성되고 다음을 활성화하여 다음을 호출하여 클라이언트 측면을 활성화합니다.

<% Html.EnableClientValidation(); %>

이것은 대부분의 요소에 대해 잘 작동하는 것 같습니다. 그러나 부울 속성이있는 인스턴스가 있는데, 이는 다음을 사용하여 확인란으로 렌더링됩니다.

<%= Html.EditorFor(model => model.Chargeable)%>

true/false (ticked/untked) 일 수 있습니다.

bool은 값 유형이며 무효가되지 않기 때문에 필요한 속성으로 렌더링되고 양식이 "충전 가능한 필드가 필요하다"고 읽을 때 오류 (클라이언트 측)를 표시합니다. 그러나 HTML은 HTML입니다. 생성 된 것은 두 부분 (체크 박스 및 숨겨진 값 모두)입니다. 포스트 백 검증을 전달합니다.

MVC 2 소스 코드를 탐색 한 후, 나는 "빠르고 더러운"수정을 순간에 넣었습니다.

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

다른 사람이 내가 이것을 해결할 수있는 방법에 대한 아이디어 나 제안을 받았습니까?

IMO, MVC가 html.editorfor/html.checkbox (for) 메소드를 사용하여 렌더링 된 확인란에 대한 클라이언트 측 확인기를 설정해야한다고 생각하지 않습니다.

참고 : ASP.NET MVC 2 RC2와 일치하는 MVC 선물 릴리스에서 MicrosoftMVCJQueryValidation.js를 사용하고 있습니다.

도움이 되었습니까?

해결책

처리하는 가장 쉬운 방법은 클라이언트 측 유효성 검사를 제거하려는 요소 (주로 확인란)에서 규칙 ( "제거", [규칙]) 함수를 호출하는 것이라고 가정합니다.

<script type="text/javascript">
  $(document).ready(function() {
    $('#Chargeable').rules('remove', 'required');
  });
</script>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top