Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# 将枚举转换为core2.1 razor页面中的下拉列表_C#_Enums_Dropdown_Asp.net Core 2.1_Razor Pages - Fatal编程技术网

C# 将枚举转换为core2.1 razor页面中的下拉列表

C# 将枚举转换为core2.1 razor页面中的下拉列表,c#,enums,dropdown,asp.net-core-2.1,razor-pages,C#,Enums,Dropdown,Asp.net Core 2.1,Razor Pages,我有下面的枚举 public class Blog { public enum BlogType { Article, News } } 我想将其转换为下拉列表,但出现错误: 无法将类型“Blog.BlogType”隐式转换为“System.Collections.Generic.IEnumerable” 我的代码: IList<SelectListItem> list = Enum.GetValues(typeof(Blog.BlogType)

我有下面的枚举

public class Blog {

   public enum BlogType {
     Article,
     News
   }

}
我想将其转换为下拉列表,但出现错误: 无法将类型“Blog.BlogType”隐式转换为“System.Collections.Generic.IEnumerable”

我的代码:

IList<SelectListItem> list = Enum.GetValues(typeof(Blog.BlogType))
.Cast<Blog.BlogType>()
.Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() })
.ToList();

SelectList data = new SelectList(list, "Value", "Text");
IList list=Enum.GetValues(typeof(Blog.BlogType))
.Cast()
.Select(x=>newselectListItem{Text=x.ToString(),Value=((int)x).ToString()})
.ToList();
选择列表数据=新选择列表(列表,“值”、“文本”);
我尝试了几种解决方案,但都遇到了同样的问题


谢谢..

最简单的方法是在选择标记帮助程序中使用
Html.GetEnumSelectList
方法:

<select asp-for="BlogType" asp-items="Html.GetEnumSelectList<BlogType>()">
    <option value="">Pick one</option>
</select>

挑一个
有关在Razor页面中使用select tag helper和枚举的更多信息,请参见此处:

尝试此代码

  Html.DropDownListFor(o => o.EnumProperty, Enum.GetValues(typeof(Blog)).Cast<Blog>().Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() }))
Html.DropDownListFor(o=>o.EnumProperty,Enum.GetValues(typeof(Blog)).Cast().Select(x=>newselectListItem{Text=x.ToString(),Value=((int)x.ToString())