我有以下枚举
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");
我尝试了几种解决方案,但是遇到了同样的问题。
谢谢..
答案 0 :(得分:1)
最简单的方法是在选择标记帮助器中使用Html.GetEnumSelectList<TEnum>
方法:
<select asp-for="BlogType" asp-items="Html.GetEnumSelectList<BlogType>()">
<option value="">Pick one</option>
</select>
在此处查看有关在Razor页面中使用选择标签帮助程序和枚举的更多信息:https://www.learnrazorpages.com/razor-pages/tag-helpers/select-tag-helper#enumerations
答案 1 :(得分:0)
尝试此代码
Html.DropDownListFor(o => o.EnumProperty, Enum.GetValues(typeof(Blog)).Cast<Blog>().Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() }))