EF6:枚举类型

时间:2014-04-14 11:45:44

标签: asp.net entity-framework enums model-binding

EF6设计器中有一个选项可以将属性转换为枚举类型。我只是用它来为我的模型添加一个新的枚举类型。如何将此枚举绑定到DropDownList中的FormView

注意:我使用带有ASP.NET模型绑定的Web窗体。

1 个答案:

答案 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
}