我不想显示 ValidationSummary,以防它只显示已显示的字段相关错误。但是,当发生自定义服务器端验证错误时,我确实需要 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
时,此重载会隐藏属性错误,例如您的“The Email field is not a valid e-mail address.” 和 “密码字段是必需的。” 来自验证摘要。另见 @Html.ValidationSummary(true) - What's the true do?。
它不会检测您是否通过 @Html.ValidationMessageFor()
打印了那些,所以如果您忘记了其中任何一个,您可能会收到失败的表单提交'告诉你为什么他们失败了。
要手动添加非属性验证错误,请调用 ModelState.AddModelError("", "Custom error")
(注意空字符串),如 Add error message to @Html.ValidationSummary 和ASP.NET MVC Html.ValidationSummary(true) does not display model errors 。
关于c# - 如果错误已经逐字段显示,如何不显示 ASP MVC ValidationSummary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847308/