我在显示验证摘要时遇到问题,我只想在验证摘要中显示错误,而不是在字段旁边。 在我看来,我有,
@Html.ValidationSummary()
@Html.ValidationMessageFor(m =>m.Name)
在我的控制器里我有
ModelState.AddModelError("Name",
"name is required");
我不应该收到验证错误消息吗?在顶部? 我不知道我错过了什么......
我还包括这些脚本文件.. jquery.validate.min.js jquery.validate.unobtrusive.min.js
答案 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" })