我試圖創建一個幫助,這將使我的表單控件在整個網站ASP.NET MVC @ Html.LabelFor(型號=> model.Name)助手
以下是我使用至今
@helper editorField(System.Linq.Expressions.Expression<Func<Model, String>> o)
{
<div class="form-group">
@Html.LabelFor(o, new { @class = "col-md-4 control-label" })
@Html.ValidationMessageFor(o, "", new { @class = "col-md-6 col-xs-12 text-errer" })
<div class="col-md-5">
@Html.TextBoxFor(o, new { @class = "form-control" })
</div>
</div>
}
我用它的方式是
@editorField(model => model.Name)
@editorField(model => model.Email)
@editorField(model => model.PhoneNumber)
這使得它很容易改變整個網站的風格和佈局在1個地方
現在,這裏是我需要幫手每個模型和數據類型
林尋找一種方式,使其工作是這樣的
@helper editorField(object o)
{
<div class="form-group">
@Html.LabelFor(o, new { @class = "col-md-4 control-label" })
@Html.ValidationMessageFor(o, "", new { @class = "col-md-6 col-xs-12 text-errer" })
<div class="col-md-5">
@Html.TextBoxFor(o, new { @class = "form-control" })
</div>
</div>
}
問題
,它應該工作所有模型和數據類型
看看這個:http://stackoverflow.com/questions/15968305/html-labelfor-use-displayname-of-object-not-property – 2015-04-02 18:07:21
這是我對這個問題的想法:這樣的事情會是最好在單獨的代碼文件中定義爲Html助手擴展(或一組擴展)。你必須爲你想要允許的每種類型實現這一點,否則你將不得不採取一個對象,找出它的類型並投射它。我只是爲每種類型實現它。除了'int'和'string',你還需要什麼? – Nick 2015-04-02 18:45:12
我需要int,字符串,十進制和雙精度 – CMS 2015-04-02 18:52:43