我正在尝试将我的项目从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及其相应的索引。它抛出错误
答案 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
});
}