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将作为字符串返回)。