首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >枚举MVC:将EditorFor()与ASP.NET的默认模板一起使用

枚举MVC:将EditorFor()与ASP.NET的默认模板一起使用
EN

Stack Overflow用户
提问于 2011-04-16 09:05:55
回答 1查看 13.2K关注 0票数 18

我已经编写了一个EnumDropDownFor()帮助器,我想将其与EditorFor()结合使用。我刚刚开始使用EditorFor(),所以我对如何选择模板感到有点困惑。

我的Enum.cshtml编辑器模板如下:

代码语言:javascript
复制
<div class="editor-label">
    @Html.LabelFor(m => m)
</div>
<div class="editor-field">     
    @Html.EnumDropDownListFor(m => m)
    @Html.ValidationMessageFor(m => m)
</div>

除了显式定义要使用的模板之外,还有什么方法可以让默认模板在将枚举传递给EditorFor()时使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-16 16:30:58

您可以查看Brad Wilson关于ASP.NET MVC中使用的default templates的博客文章。当您拥有类型为Enum的模型属性时,它是正在呈现的字符串模板。因此,您可以像这样定制此字符串编辑器模板:

~/Views/Shared/EditorTemplates/String.cshtml

代码语言:javascript
复制
@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" }
    )
}

然后在你看来很简单:

代码语言:javascript
复制
@Html.EditorFor(x => x.SomeEnumProperty)
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5683769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档