如果错误已经逐字段显示,如何不显示ASP MVC ValidationSummary?

我不想显示ValidationSummary,以防它只显示已显示的字段相关错误。 但是,当发生自定义服务器端validation错误时,我确实需要ValidationSummary:

if (!UserManager.IsEmailConfirmed(user.Id)) { AuthenticationManager.SignOut(); ModelState.AddModelError("", "You need to confirm your email."); return View(model); } 

在此处输入图像描述

在此处输入图像描述

使用@Html.ValidationSummary(excludePropertyErrors: true)

excludePropertyErrorstrue ,此重载会隐藏属性错误,例如“电子邮件字段不是有效的电子邮件地址”。 并且“密码字段是必需的。” 来自validation摘要。 另见@ Html.ValidationSummary(true) – 真实的是什么? 。

不会检测您是否通过@Html.ValidationMessageFor()打印它们,因此如果您忘记了其中任何一个,您可能会收到失败的表单提交,但不会告诉您它们失败的原因。

要手动添加属性validation错误,请调用ModelState.AddModelError("", "Custom error") (注意空字符串),如向@ Html.ValidationSummary和ASP.NET MVC Html 添加错误消息中所述 .ValidationSummary(true)不显示模型错误 。

比如@CodeCaster说简单添加

@ Html.ValidationSummary(真)。

如果bool参数为true,则仅显示模型级错误。 如果参数为false,则显示所有错误。 参考