如果错误已经逐字段显示,如何不显示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)
。
当excludePropertyErrors
为true
,此重载会隐藏属性错误,例如“电子邮件字段不是有效的电子邮件地址”。 并且“密码字段是必需的。” 来自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,则显示所有错误。 参考