我發現自己寫這一大堆我的觀點:Asp.Net Razor視圖傳遞表達爲偏
<div class="form-group">
@Html.LabelFor(x => x.City)
@Html.EditorFor(x => x.City)
@Html.ValidationMessageFor(x => x.City)
</div>
我真的很想把這個偏_Field.cshtml
,這樣的事情:
@model //what model type???
<div class="form-group">
@Html.LabelFor(Model)
@Html.EditorFor(Model)
@Html.ValidationMessageFor(Model)
</div>
這可能然後通過調用:
@Html.Partial("_Field", x => x.City)
會是什麼@model
類型在我的p如果我想要完成這樣的事情,那就是藝術嗎?
UPDATE這工作,但我寧願使用的部分,便於更改模板的:
public static MvcHtmlString Field<TModel, TItem>(this HtmlHelper<TModel> html, Expression<Func<TModel, TItem>> expr)
{
var h = "<div class='form-group'>";
h += $"{html.LabelFor(expr)}{html.EditorFor(expr)}{html.ValidationMessageFor(expr)}";
h += "</div>";
return MvcHtmlString.Create(h);
}
我認爲使用'EditorTemplates',但問題是我使用他們所有的地方,但不總是* *要他們用額外的div等包裹,我不總是想要一個標籤。我想我可以創建基於UIHint的模板,並使用_ViewStart來減少html。去坐這個。 – mxmissile
請參閱上面的我的更新。可能會給你一些工作。 –