Asp.net Mvc Enum 扩展

简介: 消失月余,担心文笔生疏,今作简单一篇小文试手。   一直以来都觉得enum、struct以及class是编程的基础结构。 我们通常意图用枚举来表示一些名称的值属性。有的时候用Enum来填充DropDownList也算是不错的选择。

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

 

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

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

假设我们有一个enum:

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

我们想要实现如此效果:

image

 

因为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了
目录
相关文章
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
422 5
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
185 1
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
252 7
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
282 0
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
291 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
231 0
|
数据库
分享一个 .NET EF 6 扩展 Where 的方法
分享一个 .NET EF 6 扩展 Where 的方法
188 0
|
开发框架 程序员 API
【C#】.net core2.1,通过扩展状态代码页方法对404页面进行全局捕抓并响应信息
在开发一个网站项目时,除了异常过滤功能模块,还需要有针对404不存在的api接口和页面处理功能 本篇文章就来讲讲,如何自定义全局请求状态类来统一处理
|
SQL 存储 XML
ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法
ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法 一、前言 在非静态页面的项目开发中,必定会涉及到对于数据库的访问,最开始呢,我们使用 Ado.Net,通过编写 SQL 帮助类帮我们实现对于数据库的快速访问,后来,ORM(Object Relational Mapping,对象关系映射)出现了,我们开始使用 EF、Dapper、NHibernate,亦或是国人的 SqlSugar 代替我们原来的 SqlHelper.cs。
4595 0