消失月余,担心文笔生疏,今作简单一篇小文试手。

一直以来都觉得enum、struct以及class是编程的基础结构。

我们通常意图用枚举来表示一些名称的值属性。有的时候用Enum来填充DropDownList也算是不错的选择。

假设我们有一个enum:

public enum Role{
User = 0,
Admin = 1024
}

我们想要实现如此效果:

因为enum本身并没有IEnumerable接口,所以不能直接使用new SelectList(Role);来将之填充DropDownList。

但是我们可以写一个静态方法将之转为IEnumerable。

public class EnumExt{static public List<ListItem> ToListItem<T>(){List<ListItem> li = new List<ListItem>();foreach (int s in Enum.GetValues(typeof(T))){li.Add(new ListItem{Value = s.ToString(),Text = Enum.GetName(typeof (T), s)});}return li;}
}

View文件中我们加入以下helper:

    <%=Html.DropDownList("enumlist") %>

然后我们在Controller的action中写如下绑定即可

        public ActionResult Index()
{
ViewData["enumlist"] = new SelectList(EnumExt.ToListItem<Role>(),"value","text");return View();
}

这样我们就可以实现将Enum绑定在DropDownList了

转载于:https://www.cnblogs.com/chsword/archive/2008/11/12/aspnetmvc_enum.html

Asp.net Mvc Enum 扩展相关推荐

  1. ASP.NET MVC路由扩展:路由映射

    上周我写了三篇文章(一.二.三)详细地介绍了ASP.NET的路由系统.ASP.NET的路由系统旨在通过注册URL模板与物理文件之间的映射进而实现请求地址与文件路径之间的分离,但是对于ASP.NET M ...

  2. 13个 ASP.NET MVC 的扩展

    ASP.NET MVC设计的主要原则之一是可扩展性.处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的.因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏 ...

  3. [转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择

    本文转自:http://blog.bossma.cn/asp_net_mvc/asp-net-mvc-htmlhelper-calendar-datetime-select/ 这里我们扩展HtmlHe ...

  4. ASP.NET MVC Framework 系列

    序言 做为设计模式的王者,MVC在众多领域都成为良好的模型的代名词,从前在ASP.NET下我们只能依靠Monorail来实现ASP.NET下无控件的MVC,但是现在ASP.NET 下的MVC已经成为现 ...

  5. ASP.NET MVC扩展库

    很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行.这个项目的核心是IOC容器,包括Ninject ...

  6. How ASP.NET MVC Works?

    一.ASP.NET + MVC IIS与ASP.NET管道 MVC.MVP以及Model2[上篇] MVC.MVP以及Model2[下篇] ASP.NET MVC是如何运行的[1]: 建立在" ...

  7. asp.net mvc使用TagBuilder的应用程序集

    在asp.net mvc编写扩展方法中需要使用到TagBuilder类,根据msdn的说法应该应用System.Web.Mvc.dll 程序集. TagBuilder 构造函数 .NET Framew ...

  8. ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则

    对于Model验证,理想的设计应该是场景驱动的,而不是Model(类型)驱动的,也就是对于同一个Model对象,在不同的使用场景中可能具有不同的验证规则.举个简单的例子,对于一个表示应聘者的数据对象来 ...

  9. (转)[翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper

    原文地址:http://weblogs.asp.net/stephenwalther/archive/2008/06/13/asp-net-mvc-tip-1-creating-new-html-he ...

最新文章

  1. JForum 的 SSO集成
  2. 深度学习中学习率(lr:learn rate)和batchsize如何影响模型性能?
  3. 浅谈RDMA流控设计
  4. mac下终端命令行下添加mysql命令
  5. python连接数据库mysql错误1045、手动登录可以_登录mysql错误1045解决方法
  6. Java查找一个字符串中所有匹配某正则的子串
  7. 介绍struct bus_type非常好的
  8. C语言之结构体(2)
  9. bootstrap table的属性sidePagination设置不当导致数据不显示
  10. macbook2015年早期版本更换三星1T 980nvme遇坑过程
  11. python基于django的校园公寓宿舍报修管理系统设计与实现
  12. iOS9不受信任的企业开发人员,无法信任
  13. OnActionExecuting 中设置跳转指定网址或路由
  14. Nginx 启停方法
  15. 手把手交你安装配置sumo(解决netedit.exe打不开.xml文件)
  16. c语言自学文档,C语言入门自学教程傲梦.docx
  17. 【WhatsApp营销】不可错过的品牌WhatsApp创意营销案例分享
  18. 英文版系统的 IIS支持中文路径及中文文件名
  19. 没有时间可以浪费了!探险家伊泽瑞尔...
  20. VB.NET 读写HTML 文件,VB.Net读取和写入文本文件

热门文章

  1. 电子系统动态范围的理解
  2. linux 编译器错误,linux – GHCi – Haskell编译器错误 – /home/user/.ghci归其他人所有,IGNORING...
  3. 网页编辑html中怎么写搜索代码,如何在html页面中实现查找功能
  4. 基区宽度调制效应(厄尔利(Early)效应)
  5. 如何在WORD中设置标题1与标题2编号样式不一样
  6. 如何使用小的显存训练大的batch_size
  7. 给Resnet加人工经验提升30%的准确率
  8. [HNOI2019]JOJO
  9. [C]字符串排序之-冒泡法
  10. PostgreSQL Oracle 兼容性之 - PL/SQL FORALL, BULK COLLECT