Asp.net mvc jQuery.Validation.Unobtrusive客户端验证仅在脚本位于查看页面上时有效

Asp.net mvc jQuery.Validation.Unobtrusive客户端验证仅在脚本位于查看页面上时有效,asp.net-mvc,asp.net-mvc-4,unobtrusive-validation,client-side-validation,asp.net-mvc-validation,Asp.net Mvc,Asp.net Mvc 4,Unobtrusive Validation,Client Side Validation,Asp.net Mvc Validation,我有一个ASP.NETMVC4应用程序,它使用了jQuery.validation.js插件和MVC的jQuery.validation.unobtrusive.js。我在视图模型上使用数据注释来验证文本框的输入是否为整数 此(嵌套)视图是使用 <% Html.RenderPartial("New"); %> 例如: var saveAndUpdate = function (url) { var myForm = $('form', $('#TheDivThatConta

我有一个ASP.NETMVC4应用程序,它使用了jQuery.validation.js插件和MVC的jQuery.validation.unobtrusive.js。我在视图模型上使用数据注释来验证文本框的输入是否为整数

此(嵌套)视图是使用

<% Html.RenderPartial("New"); %>
例如:

var saveAndUpdate = function (url) {
    var myForm = $('form', $('#TheDivThatContainsTheNewHTML'));
    $.ajax({
        url: url,
        type: 'POST',
        data: myForm.serialize(),
        success: function (result) {
            $('#TheDivThatContainsTheNewHTML').html(result);
            $.validator.unobtrusive.parse($('#TheDivThatContainsTheNewHTML'));          
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
        },
        dataType: 'html'
    });
}

但是使用ajax调用重新加载嵌套视图时,客户端验证将不再有效。为什么会这样?

验证适用于
文档就绪
,刷新页面时,应手动初始化表单的验证

像这样:

$.validator.unobtrusive.parse("form");

同样的问题:

谢谢!我还注意到,您可以通过在嵌套视图中显式添加脚本标记来解决这个问题,而不是依赖母版页呈现的脚本。这里有一个很好的检查点
$.validator.unobtrusive.parse("form");