Mvc 4验证摘要错误未显示

时间:2013-08-15 17:50:17

标签: asp.net-mvc c#-4.0 asp.net-mvc-4

我在显示验证摘要时遇到问题,我只想在验证摘要中显示错误,而不是在字段旁边。 在我看来,我有,

    @Html.ValidationSummary()
    @Html.ValidationMessageFor(m =>m.Name)

在我的控制器里我有

ModelState.AddModelError("Name",
                                "name is required");

我不应该收到验证错误消息吗?在顶部? 我不知道我错过了什么......

我还包括这些脚本文件.. jquery.validate.min.js jquery.validate.unobtrusive.min.js

4 个答案:

答案 0 :(得分:26)

尝试

@Html.ValidationSummary(false)

这样它就不会排除属性错误。

OR

尝试@xurca链接方法,即使用空键添加模型错误,使其不与特定属性绑定。

ModelState.AddModelError(String.Empty, "name is required");

答案 1 :(得分:2)

如果您自定义了您的字段

 @Html.TextBoxFor(model => model.Name, new {  id = "staffSearchFilterName", value = "", **Name = "staffSearchFilterName"** })

然后你必须使用

@Html.ValidationMessage("staffSearchFilterName")

答案 2 :(得分:1)

如果您的@ Html.ValidationSummary()调用处于部分视图中,则不要将数据传递到部分视图中,如下所示:

@Html.Partial("_YourForm", Model,  new ViewDataDictionary { { "Submit", true }})

相反,首先将键值对添加到Html.ViewData集合中:

@{
    Html.ViewData.Add(new KeyValuePair<string,object>("Submit",true));
}

然后调用局部视图:

@Html.Partial("_YourForm", Model, Html.ViewData)

这将允许ModelState正确地传播到局部视图。

答案 3 :(得分:-1)

在控制器自定义错误

 ModelState.AddModelError("test","test");

要点:

 @Html.ValidationSummary(false, "", new { @class = "text-danger" })

个别字段:

  @Html.TextBoxFor(m => m.FieldName, new { @class= "form-control" })
  @Html.ValidationMessageFor(m => m.FieldName, "", new { @class = "text-danger" })