用枚举填充 ASP.NET MVC 中的 SelectList [重复]

Posted

技术标签:

【中文标题】用枚举填充 ASP.NET MVC 中的 SelectList [重复]【英文标题】:Populate SelectList in ASP.NET MVC with enum [duplicate] 【发布时间】:2014-03-04 14:03:55 【问题描述】:

我的数据层中有一个枚举,我想在我的网站项目中使用它的下拉列表。 我在数据层的枚举是:

namespace SME.DAL.Entities.Enums

    public enum EntityState
    
        Open,
        Freezed,
        Canceled,
        Completed,
        Terminated,
        ReadOnly
    

如何制作它的选择列表并在我的网站页面中使用它? 我正在使用 ASP.NET MVC 4。

【问题讨论】:

在我看来,您有 3 个选项:在您的操作中创建一个 SelectList 并将其传递给视图 创建一个自定义 html 帮助器来执行此操作 或为Enum 创建一个模板,您可以在其中动态创建下拉列表。下面答案中发布的链接提供了完成每个选项所需的所有信息。 【参考方案1】:

简单示例:

控制器:

public ViewResult SomeFilterAction()
      
var EntityState = new SelectList(Enum.GetValues(typeof(EntityState)).Cast<EntityState>().Select(v => new SelectListItem
         
             Text = v.ToString(),
             Value = ((int)v).ToString()
         ).ToList(),"Value","Text");
return View(EntityState)

查看:

  @model System.Web.Mvc.SelectList
  @Html.DropDownList("selectedEntityState",Model)

【讨论】:

如果您将此逻辑移动到 Html 帮助程序甚至模板中,则无需在每次需要“枚举下拉列表”时显式调用该操作。【参考方案2】:

好吧,如果您使用的是 MVC 5.1,他们最近添加了一个帮助程序来从 Enums 创建下拉列表。但是,由于您使用的是 MVC 4,因此您必须一起破解一些东西。

那里有一些例子,如果你搜索过,这个网站已经回答了很多次了。

How do you create a dropdownlist from an enum in ASP.NET MVC?

【讨论】:

以上是关于用枚举填充 ASP.NET MVC 中的 SelectList [重复]的主要内容,如果未能解决你的问题,请参考以下文章

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

asp.net中的常规认证方式枚举(涵盖mvc)

用数据 ASP.NET CORE MVC Jquery 填充弹出模式

ASP.NET MVC 使用视图中的值填充 DropDownList

如何使用C#从asp.net MVC中的枚举绑定下拉列表[重复]

如何在 C# 中为枚举值添加描述以与 ASP.NET MVC 中的下拉列表一起使用? [复制]