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扩展方法的更多相关文章

  1. 枚举扩展方法获取枚举Description

    枚举扩展方法 /// <summary> /// 扩展方法,获得枚举的Description /// </summary> /// <param name="v ...

  2. C# 枚举基本用法及扩展方法

    没什么好说的,都是些基础! 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; usi ...

  3. C#枚举扩展方法,获取枚举值的描述值以及获取一个枚举类下面所有的元素

    /// <summary> /// 枚举扩展方法 /// </summary> public static class EnumExtension { private stat ...

  4. C# 扩展方法——获得枚举的Description

    其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html /// <summary> /// 扩展方法,获得枚举的Descrip ...

  5. Enum扩展及MVC中DropDownListFor扩展方法的使用

    public enum SearchState { /// <summary> /// 全部 /// </summary> [Description("全部" ...

  6. 【ASP.NET MVC 学习笔记】- 14 HtmlHlper的扩展方法

    本文参考:http://www.cnblogs.com/willick/p/3428413.html 1.在 MVC 中用于生成 Html 元素的辅助类是 System.Web.Mvc 命名空间下的  ...

  7. 为IEnumerable<T>添加RemoveAll<IEnumerable<T>>扩展方法--高性能篇

    最近写代码,遇到一个问题,微软基于List<T>自带的方法是public bool Remove(T item);,可是有时候我们可能会用到诸如RemoveAll<IEnumerab ...

  8. C#的扩展方法解析

    在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继 ...

  9. ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

    一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...

随机推荐

  1. Go基础---->go的第一个程序

    今天我们学习搭建一个学习go语言的开发环境. Go语言 一.下载go 下载地址:https://golang.org/dl/ 校验下载,在命令行输入go version 二.编写第一个hello wo ...

  2. php事件钩子

    PHP中钩子函数的实现与认识:  http://rmingwang.com/set-php-hooks.html 1.钩子函数是预设并在特定的条件下触发的. 2.钩子函数接管程序后可以影响到程序的走向 ...

  3. 01.Elasticsearch安装

    1.下载运行Elasticsearch 1.下载解压elasticsearch Elasticsearch官网地址:https://www.elastic.co/ Elasticsearch最新版下载 ...

  4. Freebsd下用pureftpd配置FTP服务器

    pureftpd安装配置简明说明 1.下载  http://sourceforge.net/projects/pureftpd/ 最新版本是pure-ftpd-1.0.16a.tar.bz2 BSD自 ...

  5. Storm 在ZK 上的目录图

    这是Zk 的可视化工具 看到的Storm 目录结构 ,这时候没有提交任何的任务给这个集群, 其实这时候我只是启动了 nimbus 还没有启动Supervisors  ,所有你 看懂的Superviso ...

  6. 转:JAVA.NET.SOCKETEXCEPTION: TOO MANY OPEN FILES解决方法

    最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报 java.net.SocketException: Too many open files错误,错误 ...

  7. 【JVM】启动脚本的参数设置

    dump文件生成 JVM会在遇到OutOfMemoryError时拍摄一个“堆转储快照”,并将其保存在一个文件中. 1.配置方法 在JAVA_OPTIONS变量中增加 -XX:+HeapDumpOnO ...

  8. 14.Iterate a Cursor in the mongo Shell-官方文档摘录

    1 迭代游标 } ); while (myCursor.hasNext()) { print(tojson(myCursor.next())); } } ); myCursor.forEach(pri ...

  9. HTML容易遗忘内容(一)

    HTML基础语法: <html> <head> <tiltle>Hello</tiltle> </head> <body bgcolo ...

  10. python 的弹框

    import easygui easygui.msgbox("This is a message!", title="simple gui")