首頁 > 後端開發 > C++ > 如何從ASP.NET MVC中的枚舉創建下拉列表?

如何從ASP.NET MVC中的枚舉創建下拉列表?

Susan Sarandon
發布: 2025-01-31 11:11:10
原創
378 人瀏覽過

在ASP.NET MVC中從枚舉創建下拉列表

ASP.NET MVC中的Html.DropDownList擴展方法提供了一種方便創建下拉列表的方式。但是,將其與枚舉一起使用可能會比較棘手。

MVC 5.1及以上版本:使用Html.EnumDropDownListFor

MVC 5.1引入了Html.EnumDropDownListFor擴展方法,簡化了從枚舉創建下拉列表的過程。示例如下:

<code class="language-csharp">@Html.EnumDropDownListFor(
    x => x.YourEnumField,
    "请选择类型", 
    new { @class = "form-control" })</code>
登入後複製

MVC 5版本:使用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及以下版本:使用擴展方法

對於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>
登入後複製

How to Create a DropdownList from an Enum in ASP.NET MVC?

以上是如何從ASP.NET MVC中的枚舉創建下拉列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板