7

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

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

在我的控制器中,我有

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

我不应该收到验证错误消息吗?在顶部?我不明白我所缺少的...

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

4

3 回答 3

30

尝试

@Html.ValidationSummary(false)

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

或者

尝试@xurca linked 方法,该方法使用空键添加模型错误,使其不绑定到特定属性。

ModelState.AddModelError(String.Empty, "name is required");
于 2013-08-15T17:56:07.197 回答
2

如果您自定义命名您的字段,例如

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

那么你必须使用

@Html.ValidationMessage("staffSearchFilterName")
于 2014-02-19T11:44:32.280 回答
2

如果您的 @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 正确地传播到局部视图。

于 2017-02-17T23:04:47.340 回答