无法清除客户端的ModelState错误?它甚至可能吗?

时间:2016-09-15 12:37:42

标签: javascript jquery asp.net-mvc validation

显然我在我的视图中使用@Html.ValidationSummary()来显示用户发布到我的控制器时可能发生的任何错误。

然而,这是我的情景

  • 用户发布到控制器并ModelState.IsValid = false;
  • @Html.ValidationSummary()向用户显示我的错误消息。
  • 现在用户更正错误并单击提交按钮。
    但是我想清除该错误消息,因为我可能会在帖子实际发生之前向用户提供另一个选项(客户端脚本)。

我已经尝试了各种隐藏验证摘要部分的技术无济于事。

function resetValidation() {

    $("form").data("valmsg-summary").hide();
    $(".field-validation-error").addClass("field-validation-valid");
    $(".input-validation-error").addClass("input-validation-valid");
    $(".validation-summary-errors").addClass("validation-summary-valid");

    $(".field-validation-error").removeClass("field-validation-error");
    $(".input-validation-error").removeClass("input-validation-error");
    $(".validation-summary-errors").removeClass("validation-summary-errors");
};

这是我的提交按钮的脚本。

$("#btnSubmit").click(function (e) {
        resetValidation();  // Trying to suppress/clear error messages

        var doPost = true;
        var p1 = $("#Field1").val();
        var p2 = $("#Field2").val();
        var p3 = $("#Field3").val();

        $.ajax({
            type: "GET",
            url: "/MyController/MyAction",
            data: { "param1": p1, "param2": p2, "param3": p3 },
            async: false
        }).done(function (data) {
            if (data > 999)
            {
                // I then display a new set of fields for the user to answer 
                doPost = false;
            }
        }).fail(function (xhr, status, err) {
            alert(xhr.responseText);
        });

        return doPost;
    });

我是以错误的方式解决这个问题吗?是否可以清除模型视图错误客户端?

1 个答案:

答案 0 :(得分:1)

感谢Stephen Muecke的解决方案:

$( “验证-汇总错误”。)空();