2012-03-27 3 views
6

Ich verwende das folgende Code-Snippet ausgiebig in meinen Modellvorlagen.Wie erstellt man eine generische MVC3-Editor-Vorlage?

<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> 

Ist es möglich, diese allgemein in eine Editor-Vorlage verkapseln so kann ich Html.EditorFor (...) ohne Rückgriff auf eine benutzerdefinierte Erweiterung verwenden?

Antwort

10

Ist es möglich, diese allgemein in einem Editor-Vorlage verkapseln so kann ich Html.EditorFor (...), ohne auf eine benutzerdefinierte Erweiterung verwenden?

Natürlich:

~/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> 

und dann:

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

oder:

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

und dann:

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

Sie brauchen wahrscheinlich nicht die "Foo" auf dem letzten Beispiel. Ich hatte keine Ahnung, dass du '(' ')' so benutzen kannst ... Auch Glückwünsche zu * fast * erreiche 300k. – Kobi

+0

@Kobi, ja, das habe ich gerade realisiert und behoben. –

+0

Das ist ein sehr cooler Trick! Genau das, was ich gesucht habe. Vielen Dank! – batkuip

Verwandte Themen