2010-03-29 9 views
10

Di seguito genera un elemento di input per un campo modello utilizzando un aiutante tipizzato:prefisso modello quando si utilizza aiutanti HTML tipizzati

Html.HiddenFor(m => m.FieldName) 

Il nome del campo generato è FieldName. Come posso aggiungere un prefisso al nome in modo che venga visualizzato come name="prefix.FieldName"?

risposta

16

È possibile impostare il prefisso per la HtmlHelper con

htmlHelper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "foo"; 

Quindi, se si imposta Html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "Foo" prima Html.HiddenFor(m => m.FormId) il nome del campo risultante sarebbe diventato 'Foo.FormId'

mi consiglia di scrivere un metodo di estensione per HtmlHelper invece di gestire questa logica nella vista. Potresti quindi voler utilizzare il nome del modello tipo come prefisso.

1

Non è possibile. Potresti invece utilizzare i modelli di editor. Brad Wilson ha un series of blog posts che li descrive. Scott Gu li copre anche in questo post.

Problemi correlati