c# - 将枚举的内容获取到下拉列表

标签 c# asp.net-mvc asp.net-mvc-3 c#-4.0 enums

我正在尝试将我的项目从枚举转换为下拉列表。请帮忙

public enum Colors{ red,blue,green,yellow,orange,white,black,Teal,Custom }


 @Html.DropDownList("SelectedColourId", Model.ColourList, "(Select one Color)")

我的 ViewModel 如下

  myPageViewModel:BasicViewModel
    {
 .....
     public IEnumerable<SelectListItem> ColourList{ get; set; }
.........
    }

我尝试过类似的事情

myViewModel.ColourList = Enum.GetNames(typeof(Colors)).ToArray()
                .Select(e => new SelectListItem() { Text = e.item, Value = e.itemindex });

但我不知道如何获取 itemText 及其对应的 Index 。它会抛出错误

最佳答案

在 Controller 中,使用 Enum GetNames 静态方法和 Linq 初始化 ColourList 数组:

myPageViewModel.ColourList = Enum.GetNames(typeof(Colors))
    .Select(c => new SelectListItem() { Text = c, Value = c })
    .ToArray();

关于c# - 将枚举的内容获取到下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324507/

相关文章:

c# - 使用组合框 MVVM 绑定(bind)枚举描述

c# - 从模板部署和运行 bot 框架 v4.4+ 有效,但使用 fork 和源代码控制部署和运行不起作用

c# - 什么时候应该在 Controller 和模型中编写代码?

c# - 如何使用MVC路由处理IIS子应用程序?

c# - 如何为 Controller 创建我自己的 http 上下文?

c# - 我如何知道我的项目的名称是什么?

c# - ASP.Net Core 2.1 IdentityCore(用户登录时未添加角色声明)

css - RAZOR 中的标签重载无效

jquery - 保持 Kendo 网格中所选选项卡之间的滚动位置

entity-framework - 如果使用 Entity Framework ,如何获取上次插入的 ID