用枚举填充 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 CORE MVC Jquery 填充弹出模式
ASP.NET MVC 使用视图中的值填充 DropDownList