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中文網其他相關文章!