ASP.NET MVC客户端验证与部分视图和Ajax

时间:2010-04-19 11:50:47

标签: jquery asp.net-mvc ajax validation

我正在使用MVC 2.0框架的客户端验证功能 (使用Html.ValidationMessageFor()Html.EnableClientValidation())。

当我以简单的形式使用验证时,一切都很好。

但是当我通过jQuery Ajax获取此表单时

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

客户端验证不起作用。为什么呢?

3 个答案:

答案 0 :(得分:7)

如果您正在使用jquery.validate(特别是使用MVC)并且您正在通过AJAX加载页面,则需要在页面加载后进行以下调用:

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

在我的博文中查看更多内容:Using Unobtrusive jQuery Validation with Forms Loaded via AJAX

答案 1 :(得分:0)

也许jQuery没有评估Ajax响应的JavaScript代码?

尝试在Ajax调用上使用dataType属性

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

来自jQuery documentation

dataType 默认值:智能猜测(xml,json,script或html)

您期望从服务器返回的数据类型。如果没有指定,jQuery将智能地尝试获取结果,基于响应的MIME类型(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,以及任何东西else将作为字符串返回。)

答案 2 :(得分:0)

我在MVC验证和部分视图方面遇到了问题。我通过使用jquery.validate.js而不是内置客户端验证来对其进行排序。你可以尝试一下。