首頁 >後端開發 >C++ >如何在ASP.NET MVC中填充具有枚舉值的下拉列表?

如何在ASP.NET MVC中填充具有枚舉值的下拉列表?

Susan Sarandon
Susan Sarandon原創
2025-01-31 11:16:13584瀏覽

How to Populate a DropDownList with Enum Values in ASP.NET MVC?

在 ASP.NET MVC 中使用枚舉值填充下拉列表

在 ASP.NET MVC 中創建使用枚舉值填充的下拉列表,可以使用 Html.DropDownList 擴展方法輕鬆實現。要將此方法與枚舉一起使用,請按照以下步驟操作:

對於 MVC v5.1(及更高版本):

使用 Html.EnumDropDownListFor 方法:

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

對於 MVC v5(及更低版本):

使用 EnumHelper 類:

<code class="language-csharp">@Html.DropDownList("MyType",
    EnumHelper.GetSelectList(typeof(MyType)),
    "请选择类型",
    new { @class = "form-control" }
)</code>

如果您使用的是 MVC 5 或更低版本,您可以使用擴展方法擴展 Rune 的解決方案:

<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>

這允許使用簡潔的語法:

<code class="language-csharp">ViewData["taskStatus"] = task.Status.ToSelectList();</code>

請記住包含 MyApp.Common 命名空間以利用此擴展方法。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn