2012-03-27 112 views
6

我在模型模板中廣泛使用了以下代碼片段。如何創建一個通用的MVC3編輯器模板?

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

是否有可能在一般這種封裝的編輯模板這樣我就可以使用Html.EditorFor(...)沒有訴諸自定義擴展?

回答

10

是否有可能在編輯器模板 一般封裝這個,所以我可以使用Html.EditorFor(...),不訴諸自定義 擴展?

當然:

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

然後:

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

或:

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

然後:

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

您可能不需要最後一個示例中的「Foo」。我不知道你可以使用像這樣的(「」)......還有,恭喜你差不多達到300k。 – Kobi 2012-03-27 07:45:34

+0

@Kobi,是的,我剛剛意識到並解決了這個問題。 – 2012-03-27 07:46:42

+0

這是一個非常酷的把戲!正是我在找什麼。謝謝! – batkuip 2012-03-27 07:49:14

相關問題