Я создал расширение HtmlHelper, чтобы уменьшить количество повторяющихся разметки при создании формы:Использование Displayfor внутри шаблона отображения
public static MvcHtmlString RenderField<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression)
{
return htmlHelper.DisplayFor(expression, "formfield");
}
Идея заключалась в том, что в моих взглядов, я могу просто написать @Html.RenderField(x=>x.MyFieldName)
и он будет печатать ярлык и содержимое поля с соответствующими тегами div
уже на месте.
Внутри папки displaytemplates я создал formfield.cshtml, содержащее следующее:
<div class="display-group">
<div class="display-label">
@Html.LabelFor(x => x)
</div>
<div class="display-field">
@Html.DisplayFor(x => x)
</div>
</div>
К сожалению, это не кажется, что это возможно гнездо Displayfor внутри шаблона отображения (он ничего не делает) , Я не хочу просто использовать @Model
, потому что тогда я не получу флажки для булевых значений, элементов управления календарем для дат и т. Д.
Есть ли хороший способ обойти это?