如何从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 关注
- 904 浏览
添加回答
举报
0/150
提交
取消