ASP.NET MVC: использование EditorFor () с шаблоном по умолчанию для перечислений
Я написал помощник EnumDropDownFor (), который я хочу использовать в сочетании с EditorFor(). Я только начал использовать EditorFor (), поэтому немного запутался в том, как выбран шаблон.
Мое Перечисление.шаблон редактора cshtml приведен ниже:
<div class="editor-label">
@Html.LabelFor(m => m)
</div>
<div class="editor-field">
@Html.EnumDropDownListFor(m => m)
@Html.ValidationMessageFor(m => m)
</div>
за исключением явного определения шаблона для использования, есть ли способ иметь шаблон по умолчанию, который используется всякий раз, когда перечисление передается в EditorFor()?
1 ответов
вы можете проверить сообщение в блоге Брэда Уилсона о шаблоны используется в ASP.NET MVC. Когда у вас есть свойство модели типа Enum, это шаблон строки, который отображается. Таким образом, вы можете настроить этот шаблон редактора строк следующим образом:
~/Views/Shared/EditorTemplates/String.cshtml
:
@model object
@if (Model is Enum)
{
<div class="editor-label">
@Html.LabelFor(m => m)
</div>
<div class="editor-field">
@Html.EnumDropDownListFor(m => m)
@Html.ValidationMessageFor(m => m)
</div>
}
else
{
@Html.TextBox(
"",
ViewData.TemplateInfo.FormattedModelValue,
new { @class = "text-box single-line" }
)
}
а потом на ваш взгляд просто:
@Html.EditorFor(x => x.SomeEnumProperty)