2012-03-27 10 views
6

Sto utilizzando il seguente frammento di codice nei miei modelli di modello.Come creare un modello di editor MVC3 generico?

<div class="control-group"> 
    @Html.LabelFor(model => model.FirstName) 
    <div class="controls"> 
     @Html.TextBoxFor(model => model.FirstName, new { @class = "span3" }) 
     @Html.ValidationMessageFor(model => model.FirstName) 
    </div> 
</div> 

E 'possibile incapsulare questo modo generico in un editor di modelli modo da poter utilizzare Html.EditorFor (...) senza ricorrere a un'estensione personalizzata?

risposta

10

E 'possibile incapsulare questo modo generico in un editor di modelli modo da poter utilizzare Html.EditorFor (...) senza ricorrere a un un'estensione personalizzata?

Naturalmente:

~/Views/Shared/EditorTemplates/Foo.cshtml:

<div class="control-group"> 
    @Html.Label("") 
    <div class="controls"> 
     @Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "span3" }) 
     @Html.ValidationMessage("") 
    </div> 
</div> 

e poi:

@Html.EditorFor(x => x.FirstName, "Foo") 

o:

[UIHint("Foo")] 
pubilc string FirstName { get; set; } 

e quindi:

@Html.EditorFor(x => x.FirstName) 
+0

Probabilmente non è necessario il "" Foo "' sull'ultimo esempio. Non avevo idea che tu possa usare '(" ")' così ... Inoltre, congratulazioni per * quasi * aver raggiunto 300k. – Kobi

+0

@Kobi, sì, l'ho appena capito e risolto. –

+0

Questo è un trucco molto interessante! Esattamente quello che stavo cercando. Grazie! – batkuip

Problemi correlati