我发现自己写这一大堆我的观点: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
请参阅上面的我的更新。可能会给你一些工作。 –