Asp.net mvc 是否有任何内置的助手方法可以在下拉列表中显示枚举?
我需要在dropdownlist中显示枚举,并在我的管理页面中预先填充它们 是否已经有任何内置的html帮助程序 asp.net mvc来自 给定枚举Asp.net mvc 是否有任何内置的助手方法可以在下拉列表中显示枚举?,asp.net-mvc,html-helper,Asp.net Mvc,Html Helper,我需要在dropdownlist中显示枚举,并在我的管理页面中预先填充它们 是否已经有任何内置的html帮助程序 asp.net mvc来自 给定枚举 public enum Status { Current = 1, Pending = 2, Cancelled = 3 } 以及可拓方法 public static SelectList ToSelectList<TEnum>(this TEnum enumObj) { var values
public enum Status
{
Current = 1,
Pending = 2,
Cancelled = 3
}
以及可拓方法
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { ID = e, Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
从
给定枚举
public enum Status
{
Current = 1,
Pending = 2,
Cancelled = 3
}
以及可拓方法
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { ID = e, Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
作为Robert Harvey答案的推论,使用DescriptionAttribute将允许您处理包含多个单词的枚举值,例如:
public enum MyEnum {
[Description("Not Applicable")]
NotApplicable,
Yes,
No
}
如果存在DescriptionAttribute值,则可以获取该值,然后使用descriptionAttributeText??enumMemberName作为下拉列表的显示文本。作为Robert Harvey答案的推论,使用DescriptionAttribute将允许您处理包含多个单词的enum值,例如:
public enum MyEnum {
[Description("Not Applicable")]
NotApplicable,
Yes,
No
}
如果存在DescriptionAttribute值,则可以获取该值,然后使用descriptionAttributeText??enumMemberName作为下拉列表的显示文本。请参见此处:请参见此处:是否有方法将ID值置于“选择选项值”属性中,而不是文本中?如果我理解正确:返回新的SelectListvalues、ID、ID、enumObj;尝试过之后,它仍然显示option value=current,I want value=1是否有办法将ID值置于“选择选项值”属性中,而不是文本中?如果我理解正确:返回新的SelectListvalues,ID,ID,enumObj;尝试过之后,它仍然显示选项value=current,我希望value=1