У меня есть такой код, который я повторяю во многих представлениях редактирования MVC. В этом примере мы отображаем флажок по умолчанию, но подобное повторение встречается и с другими типами ввода.
<div class="form-group">
@Html.LabelFor(model => model.IsLive, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-8 checkbox">
<div class="col-xs-1">
@Html.EditorFor(model => model.IsLive)
</div>
<div class="col-xs-10">
@Html.CheckboxLabelFor(model => model.IsLive)
</div>
</div>
<a class="infoonclick col-md-1" title="@Html.DisplayNameFor(model => model.IsLive)" data-content="@Html.DescriptionFor(model => model.IsLive)">
<span class="fa fa-info-circle"></span>
</a>
</div>
Мне интересно, как лучше всего СУХОЙ и стандартизировать это?
Я хочу сделать что-то вроде @Html.DefaultCheckboxEditorFor(model => model.IsLive)
Я попытался создать собственный HtmlHelper, но мне показалось, что для этого требовалось слишком много жестко закодированных строк.
Скорее, я считаю, что для этого мне следует использовать EditorTemplates, но я не могу понять синтаксис правильно. Модель для представления - это bool, но мне нужно получить специфические для свойства вещи, такие как отображаемое имя и описания.
@model bool
<div class="form-group">
@Html.LabelFor(model => model.IsLive, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-8 checkbox">
<div class="col-xs-1">
@Html.EditorFor(model => model.IsLive)
</div>
<div class="col-xs-10">
@Html.CheckboxLabelFor(model => model.IsLive)
</div>
</div>
<a class="infoonclick col-md-1" title="@Html.DisplayNameFor(model => model.IsLive)" data-content="@Html.DescriptionFor(model => model.IsLive)">
<span class="fa fa-info-circle"></span>
</a>
</div>
bool
, поэтому она должна быть@Html.LabelFor(m=> m)
и т. Д. - person   schedule 05.05.2015