如何从ASP.NETMVC中的枚举创建下拉列表?我试着用Html.DropDownList方法,但无法确定如何与枚举一起使用它。假设我有这样的枚举:public enum ItemTypes{
Movie = 1,
Game = 2,
Book = 3}如何使用Html.DropDownList可拓方法?还是我最好的选择是简单地创建一个for循环并手动创建HTML元素?
3 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
对于MVC V5.1,使用Html.EnumDropDownListFor
@Html.EnumDropDownListFor(
x => x.YourEnumField,
"Select My Type",
new { @class = "form-control" })对于MVC v5,使用EnumHelper
@Html.DropDownList("MyType",
EnumHelper.GetSelectList(typeof(MyType)) ,
"Select My Type",
new { @class = "form-control" })适用于MVC 5及更低版本
namespace MyApp.Common{
public static class MyExtensions{
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
where TEnum : struct, IComparable, IFormattable, IConvertible
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { Id = e, Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
}}ViewData["taskStatus"] = task.Status.ToSelectList();
using MyApp.Common
- 3 回答
- 0 关注
- 937 浏览
添加回答
举报
0/150
提交
取消
