我正在尝试将我的商品从枚举转换为下拉列表。请帮助

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及其对应的Index。它会引发错误

最佳答案

在控制器中,使用Enum GetNames静态方法和Linq初始化ColourList数组:

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

关于c# - 将枚举的内容获取到下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10324507/

10-11 02:07