0

我有一個顯示下面的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." 

我想避免替換所有必需的屬性,所以我正在尋找一種方法來做到這一點,我正在尋找DataAnnotationsModelValida torProvider.RegisterAdapter方法,但我不確定這是我在找什麼。

有人有如何實現這一目標的線索嗎?

+0

檢查微軟unobstrusive驗證碼,看看他們呈現驗證摘要,檢查你是否可以給自定義html一些處理程序:) –

+0

謝謝,但我認爲這些消息來自服務器(使用dataannotations生成)。 在不顯眼的驗證代碼中,它從數據屬性中獲取錯誤,並將它們附加到驗證摘要中, – Sam

回答

1

我沒有找到一個合適的回答我的問題,

所以我最終通過構建一個簡單的屬性,它繼承RequiredAttribute標籤和覆蓋FormatErrorMessage方法

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

,我全部換成了[Required]屬性通過[FormattedRequired]屬性