2010-04-19 6 views
5

MVC 2.0 프레임 워크 (Html.ValidationMessageFor()Html.EnableClientValidation())의 클라이언트 유효성 검사 기능을 사용하고 있습니다.부분 뷰 및 Ajax를 사용하는 ASP.NET MVC 클라이언트 유효성 검사

간단한 양식으로 유효성 검사를 사용할 때 모든 것이 좋습니다.

하지만 jQuery를 아약스를 통해이 양식을 얻을 때

$.get('PathToMyForm', function(htmlResult) { 
    $('selector').html(htmlResult); 
}); 

클라이언트 검증이 작동하지 않습니다. 왜?

+0

* 어떻게 작동하지 않습니까? 새 필드의 유효성이 검사되지 않았습니까? 아무 것도 검증되지 않았습니까? 유효성 검사 코드는 어디에 있습니까? 부분적으로? 포함 페이지에서? 좀 더 많은 코드와 설명이 도움이 될 것입니다. – tvanfosson

+0

tvanfosson, [필수] 속성이있는 모델이 있습니다. 일반적인 시나리오 (AJAX없이 Html.RenderPartial 만 사용)에서 클라이언트 유효성 검사가 올바르게 작동합니다. 텍스트 상자에 빈 문자열을 입력하고 다른 텍스트 상자에 포커스를 지정하면 유효성 검사 메시지가 나타납니다. 하지만 AJAX를 사용하면이 메시지가 표시되지 않습니다. – griZZZly8

답변

0

MVC 유효성 검사 및 부분 뷰에도 문제가있었습니다. 나는 build-in 클라이언트 유효성 검사 대신에 jquery.validate.js를 사용하여 그것을 분류했다. 너는 그것을 시험해 볼 수있다.

+0

jQuery.validate에서 내 모델을 볼 수 없습니다. 모델 클래스에서 유효성 검사 규칙을 정의하려고합니다. – griZZZly8

+0

그렇게 할 수 있습니다. ASP.NET MVC Futures http://aspnet.codeplex.com/releases/view/41742를 확인하십시오. –

0

jQuery가 Ajax 응답의 JavaScript 코드를 평가하지 않았을 수 있습니까?

하면 jQuery documentation에서 Ajax 호출에 데이터 유형 속성을 사용하여

$.get('PathToMyForm', {dataType 'html'}, function(htmlResult) { 
    $('selector').html(htmlResult); 
}); 

을 시도해보십시오

dataType와 기본값 : 지능형 추측 (XML, JSON, 스크립트 또는 HTML)를

서버에서 기대하는 데이터 유형. 아무 것도 지정하지 않으면 jQuery는 응답의 MIME 유형을 기반으로 결과를 지능적으로 얻으려고 시도합니다 (XML MIME 유형은 XML을 생성합니다. 1.4에서는 JSON이 JavaScript 객체를 생성하고 1.4 스크립트는 스크립트를 실행하며 아무것도 else는 문자열로 반환됩니다).

+0

라파엘 뮬러 (Rafael Mueller), 답변 해 주셔서 감사합니다.하지만 도움이되지 않습니다. 경고 ('스크립트 테스트')를 부분보기에 포함 시켰습니다. 작동합니다. 하지만 여전히 유효성 검사에 문제가 있습니다. – griZZZly8

8

당신이 (특히 MVC와) jquery.validate를 사용하는 경우 당신이 AJAX를 통해 페이지를로드하는, 당신은 페이지가로드 한 후 다음 전화를해야합니다

$.validator.unobtrusive.parse($("#validation")); 

내 블로그 게시물에서 자세한 내용보기 : Using Unobtrusive jQuery Validation with Forms Loaded via AJAX

관련 문제