【问题标题】:Format error messages in validation summary在验证摘要中格式化错误消息
【发布时间】:2013-11-28 13:56:13
【问题描述】:

我有一个显示以下 html 的验证摘要

<div class="validation-summary-errors" data-valmsg-summary="true">
    <span>Une ou plusieurs erreurs sont survenues.</span>
    <ul>
      <li>Le champ Nom d'utilisateur est requis.</li>
      <li>Le champ Mot de passe est requis.</li>
    </ul>
</div>

错误消息是 dataannotation 的 required 属性中的默认消息: 它们通过 requiredfield 属性和本地化进行本地化

[Required]
[Display(Name = "Username", Prompt = "Username", ResourceType = typeof(Localized))]
public String Username { get; set; }

[Required]
[Display(Name = "Password", Prompt = "Password", ResourceType = typeof(Localized))]
public String Password { get; set; }

在我看来:

@Html.TextBoxFor(m => m.Username)

给予

<input data-val="true" data-val-required="Le champ Nom d'utilisateur est requis."     id="Username" name="Username" type="text" value="" class="input-validation-error">

我想要实现的是在验证摘要中拥有

<ul>
   <li>Le champ <span>Nom d'utilisateur</span> est requis.</li>
   <li>Le champ <span>Mot de passe</span> est requis.</li>
</ul>

所以我想在输入中我会有

data-val-required="Le champ <span>Nom d'utilisateur</span> est requis."

我想避免替换所有必需的属性,所以我正在寻找一种在全球范围内执行此操作的方法,我正在寻找 DataAnnotationsModelValidatorProvider.RegisterAdapter 方法,但我不确定它是否是我正在寻找的。

有人知道如何做到这一点吗?

【问题讨论】:

  • 查看 microsoft 不显眼的验证代码,看看它们在哪里呈现验证摘要,检查您是否可以为自定义 html 提供一些处理程序 :)
  • 谢谢,但我认为来自服务器的消息是这样的(使用数据注释生成)。在不显眼的验证代码中,它从数据属性中获取错误并将它们附加到我不理解的验证摘要中

标签: asp.net-mvc validation asp.net-mvc-4 format data-annotations


【解决方案1】:

我的问题没有找到合适的答案,

所以我最终构建了一个简单的属性,该属性继承了 RequiredAttribute 并覆盖了 FormatErrorMessage 方法

public sealed class FormattedRequiredAttribute : RequiredAttribute
{
    public override string FormatErrorMessage(string name)
    {
       return base.FormatErrorMessage("<span>"+name+"</span>");
    }
}

我用 [FormattedRequired] 属性替换了所有 [Required] 属性

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2018-03-29
    • 2021-09-25
    • 1970-01-01
    相关资源
    最近更新 更多