【发布时间】:2017-03-29 04:27:57
【问题描述】:
使用 ASPNET MVC 4,假设我有一个枚举
public enum IndicatorGroup
{
Include_ANY_MatchingIndicator = 1,
Include_ALL_MatchingIndicator = 2,
Exclude_ANY_MatchingIndicator = 3,
Exclude_ALL_MatchingIndicator = 4
};
我使用以下辅助方法将其绑定到下拉列表,如下所述:How do you create a dropdownlist from an enum in ASP.NET MVC?
public static class MyExtensions{
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 = e, Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
}
现在我希望选择的值是一个数字(这可能在上面的代码中指定为)
Id = e ,
但是当我获得选定的值时,它会返回文本 Exclude_ALL_MatchingIndicator 而不是数字 4。如何正确设置它?
查看
@Html.DropDownListFor(m => m.IndicatorGroups, Model.IndicatorGroups.ToSelectList(), new { @id = "ddlIndicatorGroup" })
【问题讨论】:
-
Id = (int)e,但是你为什么要它是一个数字呢? -
确实 id = (int)e 但它给出了解析错误。无法将类型 TEnum 转换为 int
-
我只是想将下拉列表中的值设置为数字和文本作为 Include_ANY_MatchingIndicator 等
-
使用
Id = Convert.ToInt32(e)
标签: c# asp.net-mvc enums