如果只显示已显示的字段相关错误,我不想显示ValidationSummary。但是,当发生自定义服务器端验证错误时,我确实需要ValidationSummary:
if (!UserManager.IsEmailConfirmed(user.Id))
{
AuthenticationManager.SignOut();
ModelState.AddModelError("", "You need to confirm your email.");
return View(model);
}
答案 0 :(得分:11)
使用@Html.ValidationSummary(excludePropertyErrors: true)
。
当true
为@Html.ValidationMessageFor()
时,此重载会隐藏属性错误,例如“电子邮件字段不是有效的电子邮件地址。”和“密码字段是必需的。“来自验证摘要。另请参阅@Html.ValidationSummary(true) - What's the true do?。
它不会检测您是否通过ModelState.AddModelError("", "Custom error")
打印它们,所以如果您忘记了其中任何一个,您可能会收到失败的表单提交,但不会告诉您它们失败的原因。
要手动添加非 - 属性验证错误,请按Add error message to @Html.ValidationSummary和ASP.NET MVC Html.ValidationSummary(true) does not display model errors中的说明调用Caused by: java.io.NotSerializableException:javax.swing.plaf.basic.BasicTextUI$UpdateHandler
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:162)
at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1707)
at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:482)
at java.awt.Container.writeObject(Container.java:3697)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
(请注意空字符串)。
答案 1 :(得分:0)
@ Html.ValidationSummary(真)。
如果bool参数为true,则仅显示模型级错误。如果参数为false,则显示所有错误。 reference