【问题标题】:Populate SelectList in ASP.NET MVC with enum [duplicate]用枚举填充 ASP.NET MVC 中的 SelectList [重复]
【发布时间】: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 创建一个模板,您可以在其中动态创建下拉列表。下面答案中发布的链接提供了完成每个选项所需的所有信息。

标签: asp.net asp.net-mvc enums selectlist


【解决方案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?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 2015-06-28
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多