首页 > 后端开发 > C++ > 如何从ASP.NET MVC中的枚举创建下拉列表?

如何从ASP.NET MVC中的枚举创建下拉列表?

Susan Sarandon
发布: 2025-01-31 11:11:10
原创
428 人浏览过

在ASP.NET MVC中从枚举创建下拉列表

ASP.NET MVC中的Html.DropDownList扩展方法提供了一种方便创建下拉列表的方式。但是,将其与枚举一起使用可能会比较棘手。

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

MVC 5.1引入了Html.EnumDropDownListFor扩展方法,简化了从枚举创建下拉列表的过程。示例如下:

@Html.EnumDropDownListFor(
    x => x.YourEnumField,
    "请选择类型", 
    new { @class = "form-control" })
登录后复制

MVC 5版本:使用EnumHelper

如果您使用的是MVC 5,则可以使用Microsoft.Web.Mvc.dll程序集中的EnumHelper类:

@Html.DropDownList("MyType", 
   EnumHelper.GetSelectList(typeof(MyType)) , 
   "请选择类型", 
   new { @class = "form-control" })
登录后复制

MVC 5及以下版本:使用扩展方法

对于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();
登录后复制

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

以上是如何从ASP.NET MVC中的枚举创建下拉列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板