MVC3 Ajax.BeginForm不显示ValidationMessage

时间:2012-11-02 07:03:37

标签: ajax asp.net-mvc-3 validation

我正在使用MVC3 + Razor。现在我有一个包含Ajax.BeginForm(...)的表单。我完全遵循“Maxim”在这篇文章中所说的内容:

ASP.NET MVC AJAX with HTML.ValidationMessageFor

我的验证规则定义如下:

ModelState.AddModelError("ControlName", "error message");

然而我的

@Html.ValidationMessageFor(model => Model.OneProperty[0].AnotherProperty) 

没有给我任何东西。

我也将这些代码放入“错误摘要”的部分视图中。我可以看到代码通过“ValidationSummary”PV运行,但它不会显示。

 if (!ViewData.ModelState.IsValid)
 {
    <div id="errorMessage" class="notificationArea">
             @Html.Partial("ValidationSummary")
    </div>
  }

简而言之,我的主要观点是:

@using (Ajax.BeginForm("SaveFromMainView", null, new AjaxOptions
{
    HttpMethod = "POST",
    UpdateTargetId = "myForm"   
}, 
    new { id = "myForm" }))
{           

    @Html.Partial("SamTest1")
}

在这个“SamTest1”局部视图中,还有另一个“ValidationSummary”局部视图来显示错误信息的子弹。

我的行动方法非常好:

return PartialView("SamTest1"); 

提前感谢大家!

1 个答案:

答案 0 :(得分:1)

我明白了。实际上这是由于模型绑定不正确。我有一个模型对象的列表,虽然像ControlFor(model =&gt; Model [0] .PropertyName)...会工作。实际上并非如此。

将其更改为正常模型绑定后,验证消息现在显示。

再次感谢所有人!