Asp.net Mvc Enum 扩展
2008-11-12 09:47
381 查看
消失月余,担心文笔生疏,今作简单一篇小文试手。
一直以来都觉得enum、struct以及class是编程的基础结构。
我们通常意图用枚举来表示一些名称的值属性。有的时候用Enum来填充DropDownList也算是不错的选择。
假设我们有一个enum:
我们想要实现如此效果:
因为enum本身并没有IEnumerable接口,所以不能直接使用new SelectList(Role);来将之填充DropDownList。
但是我们可以写一个静态方法将之转为IEnumerable。
View文件中我们加入以下helper:
然后我们在Controller的action中写如下绑定即可
这样我们就可以实现将Enum绑定在DropDownList了
一直以来都觉得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了
相关文章推荐
- Asp.net Mvc Enum 扩展
- Asp.net Mvc Enum 扩展
- 17+个ASP.NET MVC扩展点【附源码】
- Asp.Net MVC 扩展 Html.ImageFor 方法详解
- ASP.NET MVC 3 扩展之增加一个验证 Email 格式的 DataAnnotation
- Asp.Net MVC 扩展 Html.ImageFor 方法详解
- ASP.NET MVC 3 OR 4扩展Easyui-DataGrid编辑列look-up
- [ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定
- [ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定
- ASP.NET MVC路由扩展:路由映射
- asp.net mvc 2 简简单单做开发 使用DataContext扩展方法Find<TEntity>(TEntity obj) 遇到的问题
- Asp.net MVC的Model Binder工作流程以及扩展方法(2) - Binder Attribute
- ASP.NET MVC路由扩展:链接和URL的生成
- asp.net mvc 将Enum绑定在DropDownList了
- ASP.NET MVC 4 (四) 控制器扩展
- 在ASP.NET MVC下扩展一个带验证的RadioButtonList
- Asp.net MVC的Model Binder工作流程以及扩展方法(3) - DefaultModelBinder
- Asp.net MVC Render及Redirect的扩展
- 为ASP.NET MVC扩展异步Action功能
- ASP.NET MVC 2:实体外部元数据扩展