MVC4 基础 枚举生成 DropDownList 实用技巧

在MVC开发中我们常常用到枚举类型,通常枚举类型在使用中是是用DropDownList,每次转换不是什么好办法。 通过扩展加以实现此功能。


代码如下:

public static class ExSelectListItem
     {
         public static List<SelectListItem> ToSelectListItem(this Enum valueEnum)
         {
             return (from int value in Enum.GetValues(valueEnum.GetType())
                     select new SelectListItem
                     {
                         Text = Enum.GetName(valueEnum.GetType(), value),
                         Value = value.ToString()
                     }).ToList();
         }

public static List<SelectListItem> ToSelectListItem(this Enum valueEnum, string selectName)
         {
             return (from int value in Enum.GetValues(valueEnum.GetType())
                     select new SelectListItem
                     {
                         Text = Enum.GetName(valueEnum.GetType(), value),
                         Value = Enum.GetName(valueEnum.GetType(), value),
                         Selected = Enum.GetName(valueEnum.GetType(), value) == selectName ? true : false
                     }).ToList();
         }
 }

我们通过扩展Enum方法来实现自动转换MVC中前台使用List<SelectListItem>的应用

前台使用:

@Html.DorpDownList((List<SelectListItem>)TempData["枚举类型"])

看起来不错。

后台代码应用:

TempData["枚举类型"] = ((Enum) 枚举类型.默认类型).ToSelectListItem();

扩展第二个方法中,我们传递枚举类型名,来判断是否选中状态。

TempData["枚举类型"] = ((Enum) 枚举类型.默认类型).ToSelectListItem(“默认类型”);

(0)

相关推荐

  • ASP.NET MVC中为DropDownListFor设置选中项的方法

    在MVC中,当涉及到强类型编辑页,如果有select元素,需要根据当前Model的某个属性值,让Select的某项选中.本篇只整理思路,不涉及完整代码. □ 思路 往前台视图传的类型是List<SelectListItem>,把SelectListItem选中项的Selected属性设置为true,再把该类型对象实例放到ViewBag,ViewData或Model中传递给前台视图. 通过遍历List<SelectListItem>类型对象实例 □ 控制器 public Action

  • JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结

    一: DropDownList ------------------------------------------------------------------------------------------- 在使用 JQuery 进行遍历操作时, $("input").each(function(i) { ...... } 当操作对象的类型为 dropdownlist时:(备注:在firefox下DropDownList的类型为"select-one") 获

  • C#使用DropDownList绑定添加新数据的方法汇总

    DropDownList控件又称下拉列表框控件, 控件 列表 中的多行数 据 以隐含 的形式表 示 出 来,当用户需要选择所需列表项时,通过点击 "下三角 "图形 展示 ,用户每次 只能选用一个 数据项.DropDownList控件实际上是列表项 的 容器 ,下拉列表框 用 Items集合表示各项 的内 容.如果在 ASP.NET页面中逐个 的手 动填写 DropDownList控件的列表选项,当列表项很多 的时候会 比较繁琐 ,而且修改 比较麻烦 . DropDownList控件动态

  • JavaScript与DropDownList 区别分析

    比如<asp:LinkButton>控件就被渲染成了<a>锚点控件,这里要讲的DropDownList控件也一样,被渲染成了普通的select控件,在如下的asp.net页面中定义了一个web服务器控件DropDownList和一个普通的select控件(主要为了对比). 代码 复制代码 代码如下: <asp:DropDownList ID = "ddlCities" runat = "server"> <asp:ListI

  • JS简单操作select和dropdownlist实例

    本文实例讲述了JS简单操作select和dropdownlist的方法.分享给大家供大家参考.具体实现方法如下: 一.js选中服务器控件select与dropdownlist 1. js操作服务器控件select 复制代码 代码如下: <select id="selectID" onchange="return showMessage()">      <option value="0">==请选择==</optio

  • ASP.NET MVC DropDownList数据绑定及使用详解

    一:DropDownList 1.1 DropDownList绑定数据 1.1.1 DropDownList 固定绑定 这种方式适合那些已经固定的数据绑定到DropDownList上. 例 复制代码 代码如下: <asp:DropDownList runat="server" ID="ddlArea" Width="120px" > <asp:Listitem value="0">选择性别</as

  • 客户端用JavaScript填充DropDownList控件 服务器端读不到值

    填充没有任何问题,但是在服务器端却取不出来下拉表中的内容.页面代码如下. 复制代码 代码如下: <form id="form1" runat="server"> <div> <h3>看看用js填充的dropdownlist控件在服务器端能读出来吗?</h3> 三个级联下拉列表框: <asp:DropDownList runat="server" id="bigTypeList&quo

  • Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码

    由于Jquery的版本更新很快,代码的写法也改变了许多,以下Jquery代码适query1.4版本以上Radio 1.获取选中值,三种方法都可以: $('input:radio:checked').val(): $("input[type='radio']:checked").val(); $("input[name='rd']:checked").val(); 2.设置第一个Radio为选中值: $('input:radio:first').attr('check

  • ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法

    这三个控件都有一个Items集合,可以用 RepeatLayout 和 RepeatDirection 属性来控制列表的呈现形式.如果 RepeatLayout 的值为 Table,那么将在表中呈现列表.如果设置成 Flow,那么将在没有任何表结构的情况下呈现列表.默认情况下,RepeatDirection 的值为 Vertical.将此属性设置成 Horizontal 将会使列表水平呈现. RadioButtonList:控件提供已选中一个选项的单项选择列表(数据源单选).与其他列表控件相似,

  • MVC4 基础 枚举生成 DropDownList 实用技巧

    在MVC开发中我们常常用到枚举类型,通常枚举类型在使用中是是用DropDownList,每次转换不是什么好办法. 通过扩展加以实现此功能. 复制代码 代码如下: public static class ExSelectListItem     {         public static List<SelectListItem> ToSelectListItem(this Enum valueEnum)         {             return (from int value

  • .net core实用技巧——将EF Core生成的SQL语句显示在控制台中

    前言 笔者最近在开发和维护一个.NET Core项目,其中使用几个非常有意思的.NET Core相关的扩展,在此总结整理一下. EF Core性能调优 如果你的项目中使用了EF Core, 且正在处于性能调优阶段,那么了解EF Core生成的SQL语句是非常关键的.那么除了使用第三方工具,如何查看EF Core生成的SQL语句呢?这里笔者将给出一个基于.NET Core内置日志组件的实现方式. 创建一个实例项目 我们首先建一个控制台程序,在主程序中我们编写了一个最简单的EF查询. class P

  • 四十九个javascript小知识实用技巧

    目录 一.js整数的操作 二.重写原生alert,记录弹框次数 三.数字交换不声明中间变量的方法 四.万物皆对象 五.If语句的变形 六.使用===,而不是== 七.使用闭包实现私有变量 八.创建对象的构造函数 九.小心使用typeof.instanceof和constructor 十.创建一个自调用函数(Self-calling Funtion) 十一.从数组中获取一个随机项 十二.在特定范围内获取一个随机数 十三.在0和设定的最大值之间生成一个数字数组 十四.生成一个随机的数字字母字符串 十

  • 前端React Nextjs中的TS类型过滤实用技巧

    目录 自我介绍 分步介绍 开胃小菜 keyof in Conditional 泛型 正餐开始 实战应用例子 最后 大家好,我是零一,相信大家在阅读同事写的代码或者优秀的开源库的代码时,一定见过各种各样的风骚的TS写法,不花点时间下去根本看不懂,换作是我们,可能就直接一个 any 完事了,但是真正当项目体积变大后,你会发现这些 TS骚操作真的很重要,因为它能很好地帮助你做静态类型校验 自我介绍 TS类型过滤,英文名(我自己取的)叫 FilterConditionally,这是它完整的样子 type

  • TypeScript实用技巧 Nominal Typing名义类型详解

    目录 Nominal Typing(名义类型) 概念解析 拓展应用 在Vue中的应用 Nominal Typing(名义类型) 概念解析 意思是给一个类型附加上一个“名义”,从而防止结构类型在某些情况下由于类型结构相似而被错用.假设有如下代码: interface Vector2D { x: number, y: number }; interface Vector3D { x: number, y: number, z: number }; function calc(vector: Vect

  • 全面介绍javascript实用技巧及单竖杠

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新手开发者被各种强大的 JavaScript 框架吸引进来,但他们却忽略了框架身后浩如星海的 JavaScript 实用技巧.本文将为你全面的介绍其中的知识点. 一.js整数的操作 使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等

  • 总结python爬虫抓站的实用技巧

    前言 写过的这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,累积不少爬虫抓站的经验,在此总结一下,那么以后做东西也就不用重复劳动了. 1.最基本的抓站 import urllib2 content = urllib2.urlopen('http://XXXX').read() 2.使用代理服务器 这在某些情况下比较有用,比如IP被封了,或者比如IP访问的次数受到限制等等. import urllib2 proxy_support = urllib2.ProxyHandler(

  • 高质量PHP代码的50个实用技巧必备(下)

    接着上篇<高质量PHP代码的50个实用技巧必备(上)>继续研究. 26. 避免直接写SQL, 抽象之 不厌其烦的写了太多如下的语句: <span style="color:#333333;font-family:''Helvetica, Arial, sans-serif'';">$query = "INSERT INTO users(name , email , address , phone) VALUES('$name' , '$email' ,

  • 收藏的word实用技巧问题解答(实用)

    word实用技巧问题解答(实用) 问:WORD里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉.文件--页面设置--版式--页眉和页脚--首页不同 问:请问word中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?  答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下"同前"钮,再做的改动就不影响前面的了.简言之,分节符使得它们独立了.这个工具栏上的"同前"按钮就显示在工具

  • 全网首秀之Pycharm十大实用技巧(推荐)

    PyCharm 应该是大多数 python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能.它是帮助用户在使用 Python 语言开发时提高其效率的工具,但是好多人只是把它当做一个文本编辑器使用,并没有发挥出它的优势,今天我来分享一下日常开发用到的一些技巧吧. 1.自动生成导入 您正在编写代码,想导入一个包,只记得包名,但是忘了它在那个py文件了,可以通过 pycharm 自动导入.当你写了一个包名,pycharm会有提示是否需要导入,选择后将根据您的项目样式以正

随机推荐