【问题标题】:How to not display ASP MVC ValidationSummary in case when errors already displayed field by field?如果错误已逐字段显示,如何不显示 ASP MVC ValidationSummary?
【发布时间】:2015-04-24 12:15:18
【问题描述】:

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

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

【问题讨论】:

  • @Html.ValidationSummary(true)
  • @Stephen 我最初认为这之前会得到回答。虽然找不到骗子。你知道吗?
  • @CodeCaster 我想我之前回答过一个几乎相同的问题 - 只是还没有找到它

标签: c# asp.net-mvc


【解决方案1】:

使用@Html.ValidationSummary(excludePropertyErrors: true)

excludePropertyErrorstrue 时,此重载会隐藏属性错误,例如您的“电子邮件字段不是有效的电子邮件地址。”“密码字段是需要。” 来自验证摘要。另见@Html.ValidationSummary(true) - What's the true do?

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

要手动添加属性验证错误,请按照Add error message to @Html.ValidationSummaryASP.NET MVC Html.ValidationSummary(true) does not display model errors 中的说明调用ModelState.AddModelError("", "Custom error")(注意空字符串)。

【讨论】:

  • 完美答案!甚至回答了通常会出现的后续问题:)
【解决方案2】:

like @CodeCaster 说简单添加

@Html.ValidationSummary(true).

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多