枚举转SelectList扩展方法
public enum Avbc
{
Red=1,
Blue=2,
Whilt=3,
Black=4
} public static class EmumHelper
{
public static SelectList GetSelectListByEnum<TEnum>(this TEnum enumObj, int? selectedItem = null)
{
if (Enum.GetValues(typeof(TEnum)).Length > )
{
List<SelectListItem> listResult = new List<SelectListItem>();
foreach (TEnum e in Enum.GetValues(typeof(TEnum)))
{
if (selectedItem!=null && selectedItem == Convert.ToInt32(e)) // 选中
{
SelectListItem item = new SelectListItem
{
Value = Convert.ToInt32(e).ToString(), // 传输值
Text = e.ToString(), // 显示值
Selected = true
};
listResult.Add(item);
}
else
{
SelectListItem item = new SelectListItem // 不选中
{
Value = Convert.ToInt32(e).ToString(), // 传输值
Text = e.ToString() // 显示值
};
listResult.Add(item);
}
}
if (selectedItem != null)
return new SelectList(listResult, "Value", "Text",selectedItem);
else
return new SelectList(listResult, "Value", "Text");
}
return null;
}
}
Controller调用 Avbc.Black是枚举中随便一个项,扩展方法中会根据这个项找到这个枚举,然后全部列出
ViewBag.avbc = Avbc.Black.GetSelectListByEnum();
View强类型调用
@Html.DropDownListFor(m => m.avbc, ViewBag.avbc as SelectList, Model.avbc)
枚举转SelectList扩展方法的更多相关文章
- 枚举扩展方法获取枚举Description
枚举扩展方法 /// <summary> /// 扩展方法,获得枚举的Description /// </summary> /// <param name="v ...
- C# 枚举基本用法及扩展方法
没什么好说的,都是些基础! 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; usi ...
- C#枚举扩展方法,获取枚举值的描述值以及获取一个枚举类下面所有的元素
/// <summary> /// 枚举扩展方法 /// </summary> public static class EnumExtension { private stat ...
- C# 扩展方法——获得枚举的Description
其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html /// <summary> /// 扩展方法,获得枚举的Descrip ...
- Enum扩展及MVC中DropDownListFor扩展方法的使用
public enum SearchState { /// <summary> /// 全部 /// </summary> [Description("全部" ...
- 【ASP.NET MVC 学习笔记】- 14 HtmlHlper的扩展方法
本文参考:http://www.cnblogs.com/willick/p/3428413.html 1.在 MVC 中用于生成 Html 元素的辅助类是 System.Web.Mvc 命名空间下的 ...
- 为IEnumerable<T>添加RemoveAll<IEnumerable<T>>扩展方法--高性能篇
最近写代码,遇到一个问题,微软基于List<T>自带的方法是public bool Remove(T item);,可是有时候我们可能会用到诸如RemoveAll<IEnumerab ...
- C#的扩展方法解析
在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继 ...
- ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法
一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...
随机推荐
- hdu 1300(dp)
一个模式的dp. Pearls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Android软键盘的隐藏显示研究
http://winuxxan.blog.51cto.com/2779763/522810 全局推: android:windowSoftInputMode="adjustResize&qu ...
- eslint常规语法检
"no-alert": 0,//禁止使用alert confirm prompt "no-array-constructor": 2,//禁止使用数组构造器 & ...
- java环境变量、集成开发环境与使用两个类
1.集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集成了代码编 ...
- .net应用程序安装部署时异常 Error 1001. 在初始化安装时发生异常 System.BadImageFormatException:未能加载文件或程序集 的解决办法【成功解决】
采用.net 4.0框架开发的一个桌面应用程序在某学校的一体机(Windows7的32位操作系统)上做安装部署时抛出异常,安装程序回滚,多次尝试仍不成功. Error 1001. 在初始化安装时发生异 ...
- WEB状态码
这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应. 100 - 继续. 101 - 切换协议. 2xx - 成功 这类状态代码表明服务器成功地接受了客户端请求. ...
- window.location下的属性说明
属性 说明 window.location.href 完整的url window.location.protocol 协议 window.location.hostname 主机名 window.lo ...
- Golang开发支持平滑升级(优雅重启)的HTTP服务
Golang开发支持平滑升级(优雅重启)的HTTP服务 - tabalt的博客 http://tabalt.net/blog/graceful-http-server-for-golang/ http ...
- TCP requires two packet transfers to set up the connection before it can send data
wHTTP重用现存连接来减少TCP建立时延. HTTP The Definitive Guide 4.2.3 TCP Connection Handshake Delays When you set ...
- VC2005 warning C4819 消除方法
一. Warning C4819:The file contains a character that can ot be represented in the current code page(9 ...