将枚举的内容获取到下拉列表中

本文关键字:下拉列表 获取 枚举 | 更新日期: 2023-09-27 18:32:11

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

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

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

我的视图模型如下

  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及其相应的索引。它的投掷错误

将枚举的内容获取到下拉列表中

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

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

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

   foreach (DropDownEnum enumValue in Enum.GetValues(typeof(DropDownEnum)))
        {
            model.SortOptions.Add(new SelectListItem()
            {
                Text = enumValue.ToString(),
                Value = url+enumValue.ToString(),
                Selected = false
            });
        }