Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将枚举的内容获取到dropdownlist_C#_Asp.net Mvc_Asp.net Mvc 3_C# 4.0_Enums - Fatal编程技术网

C# 将枚举的内容获取到dropdownlist

C# 将枚举的内容获取到dropdownlist,c#,asp.net-mvc,asp.net-mvc-3,c#-4.0,enums,C#,Asp.net Mvc,Asp.net Mvc 3,C# 4.0,Enums,我正在尝试将我的项目从Enum转换为dropdownlist。请帮助 public enum Colors{ red,blue,green,yellow,orange,white,black,Teal,Custom } @Html.DropDownList("SelectedColourId", Model.ColourList, "(Select one Color)") 我的视图模型如下 myPageViewModel:BasicViewModel { .....

我正在尝试将我的项目从Enum转换为dropdownlist。请帮助

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; }
.........
    }

但是我不知道如何获取itemText及其相应的索引。它在控制器中抛出错误,使用EnumGetNames静态方法和Linq初始化colorList数组:

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

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

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

        {

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

            });

        }

@Millar gah,忘了你不能在构造函数中设置值。上面的方法现在应该可以用了。但是有没有一种方法可以用Value来获取项目的索引呢?@Millar当然,只要使用Value=(int)Enum.Parse(typeof(Colors),c)
   foreach (DropDownEnum enumValue in Enum.GetValues(typeof(DropDownEnum)))

        {

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

            });

        }