ASP.NET MVC中的Html.DropDownList
扩展方法提供了一种方便创建下拉列表的方式。但是,将其与枚举一起使用可能会比较棘手。
Html.EnumDropDownListFor
MVC 5.1引入了Html.EnumDropDownListFor
扩展方法,简化了从枚举创建下拉列表的过程。示例如下:
@Html.EnumDropDownListFor( x => x.YourEnumField, "请选择类型", new { @class = "form-control" })
EnumHelper
如果您使用的是MVC 5,则可以使用Microsoft.Web.Mvc.dll
程序集中的EnumHelper
类:
@Html.DropDownList("MyType", EnumHelper.GetSelectList(typeof(MyType)) , "请选择类型", new { @class = "form-control" })
对于MVC 5之前的版本,您可以创建一个扩展方法将枚举转换为SelectList
:
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); } } }
这允许您按如下方式使用ToSelectList
方法:
ViewData["taskStatus"] = task.Status.ToSelectList();
以上是如何从ASP.NET MVC中的枚举创建下拉列表?的详细内容。更多信息请关注PHP中文网其他相关文章!