2013-03-22 16 views
6

So che questo è stato discusso un sacco di volte.Attributi HTML (5) per EditorFor

Mi piacerebbe usare

@Html.EditorFor(u => u.Password, new { required = "required" }) 

Unfortunatley questo non è possibile per impostazione predefinita come sovrascrive l'EditorFor gli attributi HTML.

Non voglio utilizzare TextBoxFor perché mi piacerebbe che il valore fosse formattato in base all'attributo DisplayFormat.

C'è qualche soluzione per questo?

+0

Cosa intendi per "sovrascrive gli attributi HTML"? –

+1

@mosquito: Qual è la tua domanda in realtà? Se si desidera la convalida del campo richiesta, è possibile impostarla nel modello. – Sharun

risposta

10

si potrebbe scrivere un editor di modelli su misura per il tipo di stringa (~/Views/Shared/EditorTemplates/string.cshtml):

@Html.TextBox(
    "", 
    ViewData.TemplateInfo.FormattedModelValue, 
    ViewData 
) 

e poi:

@Html.EditorFor(u => u.Password, new { required = "required" }) 

funzionerà come previsto.

+0

Quindi cosa intendeva l'OP "sovrascrive gli attributi HTML"? –

+2

@MichaelPerrenoud, perché me lo chiedi? Chiedi all'OP. Immagino che volesse dire che il parametro 'new {required =" required "}' che stava passando al modello di editor non ha avuto alcun effetto che sia perfettamente normale perché il modello di editor predefinito predefinito ASP.NET MVC non utilizza loro. Ecco perché ho suggerito di creare un modello di editor personalizzato che utilizzi tali parametri. –

+0

Perfetto, grazie per i chiarimenti! –

-1

Non sono sicuro che sia un'opzione ma è possibile inserire [Richiesto] come decoratore di proprietà sul modello.

+2

No, questo non ha effetti sull'attributo html che desidero. – mosquito87