0

使用 MVC Razor 视图引擎;我有一个模型,该模型具有属性上的标准必需属性和一个通过 ajax 回调呈现的局部视图。主视图包含表单,部分视图仅包含显示模板等,为了在客户端触发数据注释,我必须执行以下操作;

$('#MyButton').click(function () {
        $('#MyContainer').load("MY_ACTION_URL", function () {
            var form = $("#ReserveForm");
            form.removeData('validator');
            form.removeData('unobtrusiveValidation');
            $.validator.unobtrusive.parse(form);                
        });
});

上面的效果很好,它重新绑定了我的客户端验证,它们完美地触发了。问题是我有一些没有触发的自定义 Jquery 验证。例如;

$('#ReserveForm').validate({
        ignoreTitle: true,
        errorLabelContainer: '#errorContainer',
        errorClass: 'ClientSide-Validation-errors'
    });

    $.validator.addMethod('myCustomValidation',
        function (value, element, param) {
            return $(element).val() == '' && param == true;
        }, 'my message');

    $('#MYINPUT').rules("add",
        {
            myCustomValidation: true
        });

上面的自定义验证是在文档准备好呈现的部分时声明的,但没有运气。

PS,如果我在页面加载时渲染部分内容(例如在 RenderAction 中),那么自定义验证会正常触发。

任何帮助表示赞赏。

4

1 回答 1

0

我相信这是重复的。您不希望在局部视图中有脚本。您应该提取脚本并在部分的父视图中声明它们。

MVC4部分视图javascript捆绑问题

于 2013-03-25T19:45:26.067 回答