MVC Ajax.BeginForm没有显示验证错误

时间:2016-08-02 05:34:02

标签: asp.net-mvc unobtrusive-validation

这是我的控制器动作:

[HttpPost]
        public ActionResult CreateModal(MyModel myModel)
        {
            if (ModelState.IsValid)
            {
              //success logic
            }
            return PartialView("_MyPartial", myModel);

        }

我的部分(它在jQuery对话框中):

@using (Ajax.BeginForm("CreateModal", "MyController", new {area = "MyArea2"}, new AjaxOptions() {HttpMethod = "POST", InsertionMode = InsertionMode.Replace}))
    {
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true, "", new {@class = "text-danger"})
        <div class="row">
            <fieldset>
                <legend>Info</legend>
                <div class="row">
                    <div class="form-group col-md-4">
                        @Html.LabelFor(model => model.Name, htmlAttributes: new {@class = "control-label"})
                        @Html.EditorFor(model => model.Name, new {htmlAttributes = new {@class = "form-control"}})
                        @Html.ValidationMessageFor(model => model.Name, "", new {@class = "text-danger"})
                    </div>
                </div>
                </fieldset>
                </div>
                }

我可以很好地发布我的操作,但是如果我的ModelState无效,我在return PartialView("_MyPartial", myModel)上没有验证错误,即使单步执行调试器我也看不到错误。

我使用了来自nuget的最新版本的jquery和相关技术。

另外,不确定是否重要,但我从MyArea1发布到MyArea2的控制器。 _MyPartial位于公共文件夹中。

1 个答案:

答案 0 :(得分:1)

AjaxOptions(){
    ...
    OnComplete = "ParsUnob"
    ...
}

脚本代码:

function ParsUnob() {
    $.validator.unobtrusive.parse("form");
}