0

我创建了一个 ajax 局部视图,创建后我使用

jQuery.validator.unobtrusive.parse('#recommend_fields');

打开不显眼的验证!

伟大的!

现在当我完全删除DOMie

$('#recommend_fields').remove()

我点击提交,它仍然试图验证它。我的ModelState显示错误与Id's曾经存在于内部的内容有关recommend_fields

这有什么原因吗?

AJAX 请求

var request = $.ajax({
    url: "/SomeArea/SomeController/CreateView",
    type: "GET",
    dataType: "html"
});
request.done(function (msg, text) {
    if (text == "success") {
        $('#recommmended_sys').empty().append(msg);

        jQuery.validator.unobtrusive.parse('#recommend_fields');
    }
});

注意

请记住,以上是片段,它们确实有效,我只想知道如何关闭不显眼的验证?

4

1 回答 1

0

最后我没有使用不显眼的验证,因为当 DOM 消失时,它无论如何都不会验证客户端,它会验证服务器端(noob school boy 错误)。

所以在服务器端我只是这样做了:

if (!ModelState.IsValid && vm.SectionMarkedForDeletion)
    ModelState.ToList().ForEach(x =>
        {
            if (x.Key.Contains("Section"))
                x.Value.Errors.Clear();
        });

x.Key.Contains("Section")从字面上看,是检查Id包含Section我添加的位的任何字段。

然后我继续使用一些服务提供商来整理其余的Model然后保存它:)

于 2013-07-17T16:43:25.900 回答