【发布时间】:2017-07-14 04:43:00
【问题描述】:
我正在使用 asp.net mvc。这可能是直截了当的。我将我的下拉列表绑定到一个枚举,如下所示
@Html.DropDownListFor(m => m.IndicatorGroups, Model.IndicatorGroups.ToSelectList(), new { @id = "ddlIndicatorGroup" })
模型定义如下
public class SearchControlViewModel
{
...
public GlobalEnums.IndicatorGroup IndicatorGroups { get; set; }
...
}
ToSelectList函数定义如下
public static SelectList ToSelectList<TEnum>(this TEnum enumObj) where TEnum : struct, IComparable, IFormattable, IConvertible
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { Id = Convert.ToInt32(e), Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
现在我在枚举中添加了带空格的值,我想显示这些值而不是“带下划线的值”
public enum IndicatorGroup
{
[EnumMember(Value = "Include ANY MatchingIndicator")]
Include_ANY_MatchingIndicator = 1,
[EnumMember(Value = "Include ALL MatchingIndicator")]
Include_ALL_MatchingIndicator,
[EnumMember(Value = "Exclude ANY MatchingIndicator")]
Exclude_ANY_MatchingIndicator,
[EnumMember(Value = "Exclude ALL MatchingIndicator")]
Exclude_ALL_MatchingIndicator
};
我怎样才能做到这一点?
【问题讨论】:
-
在
MVC-5中,使用EnumDropDownListFor直接绑定枚举到下拉列表。 -
参考this answer(使用
DescriptionAttribute)
标签: asp.net-mvc enums html.dropdownlistfor