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

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

当我以简单的forms使用validation时,一切都很好。

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

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

客户端validation不起作用。 为什么?

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

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

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

在我的博客文章中查看更多内容: 使用通过AJAX加载的表单进行不显眼的jQueryvalidation

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

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

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

从jQuery文档 :

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

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