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())