成功ajax提交asp.net

时间:2018-01-16 17:48:55

标签: jquery ajax asp.net-mvc jquery-validate unobtrusive-validation

技术:

Asp.net MVC
的jQuery /验证

设定:

我有一个视图,通过ajax加载,包含创建表单和列表视图。

创建表单通过ajax提交模型。我有一个js / jQuery函数,可以在提交时执行此操作:

$("#content").on("submit", ".create-form", function (e) {
    e.preventDefault();
    $.validator.unobtrusive.parse($(this));
    $(this).validate();
    if ($(this).valid()) {
        //alert($(this).serialize());
        var action = $(this).attr("action");
        $.ajax({
            type:"POST",
            url: action,
            data: $(this).serialize(),
            success: function (response) {

            },
            error: function () {
                alert("something went wrong");
            }

        })
    }
})

我的模型有几个典型的验证属性和一个远程验证属性:

[Required]
[Remote("AssetTagExists","Inventory")]
[Display(Name = "Asset Tag")]
public int AssetId { get; set; }

问题:

我第一次提交表单时,所有验证都能完美运行。但是,由于我在ajax电话后没有刷新页面(我首先使用ajax的原因),验证不会重置。如果字段为空但行为略有不同,则简单[Required]字段仍会检测并警告用户。在按下提交按钮进行验证之前,它不再等待。远程验证字段根本不再验证。

我到目前为止唯一的选择是在成功提交后用另一个ajax调用重新加载创建表单,但这并不理想。我在这里错过了一些简单的方法来重置验证吗?

0 个答案:

没有答案