数据注释/验证不适用于部分视图

时间:2014-08-12 07:40:40

标签: asp.net-mvc-5

我根据用户输入在运行时加载了一些部分视图。

$("#Categories").change(function () {
        $.ajax({
            url: "/Product/Create" + $("#Categories option:selected").text().replace(/\s+/, ""),
            type: "Get"
        }).done(function (partialViewResult) {
            $("#partialDiv").html(partialViewResult);
        });
    });

视图模型中使用的POCO使用数据注释进行修饰,但不会触发它们。

每个部分视图都包含一个表单(Html.BeginForm())。

我想我做错了什么,但不确定是什么。任何建议都非常感谢。

2 个答案:

答案 0 :(得分:4)

在Partial View中只包含JS文件,即Jquery Unobtrusive js文件,然后它可以正常工作,有时这个问题在asp.net mvc的部分视图中出现。

只需在您的部分视图中包含此js文件:

<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

------------------或者在Partial View中尝试这个----------------------- ---

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

答案 1 :(得分:1)

如果要在html中附加表单

,请尝试此操作
var formid = $("#frmAddProduct");
formid.unbind();
formid.data("validator", null);
$.validator.unobtrusive.parse($("#frmAddProduct"));

或在文档就绪的部分视图中使用

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