获取枚举列表中的枚举内容

时间:2012-04-25 22:06:56

标签: c# asp.net-mvc asp.net-mvc-3 c#-4.0 enums

我正在尝试将我的项目从Enum转换为下拉列表。请帮助

public enum Colors{ red,blue,green,yellow,orange,white,black,Teal,Custom }


 @Html.DropDownList("SelectedColourId", Model.ColourList, "(Select one Color)")

我的ViewModel位于

之下
  myPageViewModel:BasicViewModel
    {
 .....
     public IEnumerable<SelectListItem> ColourList{ get; set; }
.........
    }

我尝试了像

这样的东西
myViewModel.ColourList = Enum.GetNames(typeof(Colors)).ToArray()
                .Select(e => new SelectListItem() { Text = e.item, Value = e.itemindex });

但我不知道如何获取itemText及其相应的索引。它抛出错误

2 个答案:

答案 0 :(得分:2)

在控制器中,使用枚举 GetNames 静态方法和Linq:

初始化 ColourList 数组
myPageViewModel.ColourList = Enum.GetNames(typeof(Colors))
    .Select(c => new SelectListItem() { Text = c, Value = c })
    .ToArray();

答案 1 :(得分:0)

要在枚举下拉列表中添加选项,请使用以下代码:

   foreach (DropDownEnum enumValue in Enum.GetValues(typeof(DropDownEnum)))

        {

            model.SortOptions.Add(new SelectListItem()
            {
                Text = enumValue.ToString(),
                Value = url+enumValue.ToString(),
                Selected = false

            });

        }