EF6设计器中有一个选项可以将属性转换为枚举类型。我只是用它来为我的模型添加一个新的枚举类型。如何将此枚举绑定到DropDownList
中的FormView
?
注意:我使用带有ASP.NET模型绑定的Web窗体。
答案 0 :(得分:0)
Enum.GetValues
正是您所寻找的我相信:
public enum Currency
{
USD = 0,
Euro,
Frank,
Pound
}
var listItems = new List<SelectListItem>();
foreach(Currency c in Enum.GetValues(typeof(Currency)))
{
listItems.Add(new SelectListItem() { Value = (int)c, Text = c.ToString() })
}
并绑定到listItems ...
如果您处理通过下拉控件呈现的不同枚举,您可以实现一个泛型方法,该方法根据EnumToList方法的以下实现从枚举类型生成可绑定数据源:
http://extensionmethod.net/csharp/enum/generic-enum-to-list-t-converter
public static List<SelectListItem> CreateSelectList<T>()
{
var listItems = new List<SelectListItem>();
foreach(var e in EnumToList<T>())
{
listItems.Add(new SelectListItem() { Value = (int)e, Text = e.ToString() })
}
return listItems
}