Проверка клиента ASP.NET MVC с частичными представлениями и Ajax - PullRequest
5 голосов
/ 19 апреля 2010

Я использую функцию проверки клиента в инфраструктуре MVC 2.0 (с Html.ValidationMessageFor() и Html.EnableClientValidation()).

Все хорошо, когда я использую проверку в простой форме.

Но когда я получаю эту форму через jQuery Ajax

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

проверка клиента не работает. Почему?

Ответы [ 3 ]

7 голосов
/ 15 марта 2011

Если вы используете jquery.validate (особенно с MVC) и загружаете страницы через AJAX, вам нужно сделать следующий вызов после загрузки страницы:

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

Подробнее в моем блоге: Использование ненавязчивой проверки jQuery с формами, загруженными через AJAX

0 голосов
/ 22 апреля 2010

У меня были проблемы с проверкой MVC и частичными представлениями. Я разобрался с помощью jquery.validate.js вместо встроенной проверки клиента. Вы можете попробовать это.

0 голосов
/ 19 апреля 2010

Может быть, jQuery не оценивает код JavaScript в ответе Ajax?

Попробуйте использовать свойство dataType при вызове Ajax,

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

Из документации jQuery :

dataType По умолчанию: Intelligent Guess (xml, json, script или html)

Тип данных, которые вы ожидаете получить от сервера. Если ничего не указано, jQuery будет интеллектуально пытаться получить результаты, основываясь на типе ответа MIME (тип XML MIME приведет к XML, в 1.4 JSON даст объект JavaScript, в 1.4 скрипт выполнит скрипт и все иначе будет возвращено как строка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...