【发布时间】:2012-11-21 18:28:41
【问题描述】:
我在 ViewModel 中使用枚举来填充 DropDownListFor,如下所示:
@Html.DropDownListFor(model => model.SelectedDropDownValue,
new SelectList(Enum.GetValues(typeof(SearchOptions)), SearchOptions.SSN))
这很好用。但是,我想显示与枚举中的每个值相关联的DisplayNameAttribute 的DisplayName 属性。
我搜索了 Stackoverflow,并看到了许多使用帮助程序、扩展等实现此目的的方法。是否可以在这样的单个语句中轻松告诉 SelectList 使用 DisplayNameAttribute?
我在想这样的事情:
@Html.DropDownListFor(model => model.SelectedDropDownValue,
new SelectList(Enum.GetValues(typeof(SearchOptions),
"Value", GetDisplayAnnotation()), SearchOptions.SSN))
【问题讨论】:
-
没有内置的方法可以做到这一点。正如您在其他帖子中看到的那样,您需要使用/编写帮助程序、扩展程序等。
-
我不这么认为,但是你为什么不干脆写一个方法来接受一个枚举,提取 DisplayName 注释并返回一个 SelectList?
标签: asp.net-mvc enums data-annotations