Jquery 使用部分视图和Ajax进行ASP.NET MVC客户端验证
我正在使用MVC2.0框架的客户端验证功能 (使用Jquery 使用部分视图和Ajax进行ASP.NET MVC客户端验证,jquery,asp.net-mvc,ajax,validation,Jquery,Asp.net Mvc,Ajax,Validation,我正在使用MVC2.0框架的客户端验证功能 (使用Html.ValidationMessageFor()和Html.EnableClientValidation()) 当我以简单的形式使用验证时,一切都很好 但是当我通过jQueryAjax得到这个表单时 $.get('PathToMyForm', function(htmlResult) { $('selector').html(htmlResult); }); 客户端验证不起作用。为什么?也许jQuery没有在Ajax响应上评估Ja
Html.ValidationMessageFor()
和Html.EnableClientValidation()
)
当我以简单的形式使用验证时,一切都很好
但是当我通过jQueryAjax得到这个表单时
$.get('PathToMyForm', function(htmlResult) {
$('selector').html(htmlResult);
});
客户端验证不起作用。为什么?也许jQuery没有在Ajax响应上评估JavaScript代码 尝试在Ajax调用中使用dataType属性
$.get('PathToMyForm', {dataType 'html'}, function(htmlResult) {
$('selector').html(htmlResult);
});
从:
数据类型默认值:智能猜测(xml、json、脚本或html)
期望从服务器返回的数据类型。如果未指定,jQuery将根据响应的MIME类型智能地尝试获取结果(XML MIME类型将生成XML,在1.4中JSON将生成JavaScript对象,在1.4中脚本将执行脚本,其他任何内容都将作为字符串返回)。我在MVC验证和部分视图方面也遇到了问题。我通过使用jquery.validate.js而不是内置客户端验证来解决这个问题。您可以试一试。如果您使用jquery.validate(特别是MVC),并且您通过AJAX加载页面,则需要在页面加载后进行以下调用:
$.validator.unobtrusive.parse($("#validation"));
更多信息请参见我的博文:它是如何工作的?新字段未验证?什么都没有经过验证?验证代码在哪里?部分?在包含页面中?多一点代码和解释会有帮助的。tvanfosson,我有一个带有[Required]属性的模型。在常见场景中(没有AJAX,只有Html.RenderPartial),客户端验证工作正常-如果我在textbox中键入空字符串并将焦点放在另一个textbox上,则会收到验证消息。但是对于阿贾克斯,我没有得到这个信息。拉斐尔·穆勒,谢谢你的回答,但这对我没有帮助。我已将警报(“脚本测试”)包含在我的局部视图中-它可以工作。但是我仍然存在验证问题。jQuery.validate无法查看我的模型。我想在模型类中定义验证规则。您可以这样做。检查ASP.NET MVC目录