验证摘要中的格式错误消息

时间:2013-11-28 13:56:13

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

我有一个验证摘要,显示以下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的必需属性中的默认消息: 它们由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方法,但我不确定&#? 39,我正在寻找的东西。

有人知道如何实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

我的问题找不到合适的答案,

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

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

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