我已经编写了一个EnumDropDownFor()帮助器,我想将其与EditorFor()结合使用。我刚刚开始使用EditorFor(),所以我对如何选择模板感到有点困惑。
我的Enum.cshtml编辑器模板如下:
<div class="editor-label">
@Html.LabelFor(m => m)
</div>
<div class="editor-field">
@Html.EnumDropDownListFor(m => m)
@Html.ValidationMessageFor(m => m)
</div>
除了显式定义要使用的模板之外,还有什么方法可以让默认模板在将枚举传递给EditorFor()时使用?
发布于 2011-04-16 16:30:58
您可以查看Brad Wilson关于ASP.NET MVC中使用的default templates的博客文章。当您拥有类型为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)
https://stackoverflow.com/questions/5683769
复制相似问题