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