今天在做项目时遇到一个问题:

  开发中有些字段是枚举类型如 Dept 企业表中可能有个字段 Property 性质 0:事业单位,1:私企,2:外企,但有时我们不会单独为性质这个字段定义一张表,

而是在后台用枚举来定义此字段有可能的值,而这个时候我们在前台绑定select标签时又不好将其写死。

我首先想到的是用枚举绑定select,但一般情况下我们的枚举名都用英文表示,而将英文绑定就显得不合实际,这时候我想到的是绑定 Description 枚举描述。

下面是我的解决方案,本人小白,有更好的方法欢迎大家提出,一起加油共同进步。

一.定义枚举类 (common)

      /// <summary>
/// 单位性质 0:事业单位,1:私企,2:外企
/// </summary>
public enum DeptProperty
{
[Description("事业单位")]
Institution = ,
[Description("私企")]
PrivateCompany = ,
[Description("外企")]
ForeignCompany =
}

二.获取枚举中的值和Description

ps:这块方法可能不是最好的。有更好的方法希望能提出交流。

1.Controller.cs

         /// <summary>
/// 获取企业性质
/// </summary>
public JsonResult GetDeptProperty()
{
List<SelectListItem> items = new List<SelectListItem>();
//遍历枚举的公共且静态的Field,获取Field的值;
foreach (FieldInfo myEnum in typeof(Model.EnumClass.DeptProperty).GetFields(BindingFlags.Public | BindingFlags.Static))
{
items.Add(new SelectListItem()
{
Text = EnumHelper.GetDescription(myEnum),
Value = ((int)myEnum.GetValue(null)).ToString()
});
}
return Json(items, JsonRequestBehavior.AllowGet);
}

2.Helper.cs  GetDescription()

         /// <summary>
/// 根据Field获取Description说明的值
/// </summary>
/// <param name="fi"></param>
/// <returns></returns>
public static string GetDescription(FieldInfo fi)
{
DescriptionAttribute[] arrDesc = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
return arrDesc[].Description;
}

三.前台请求数据并绑定 (js)

 //加载企业性质
function getDeptProperty() {
//同步请求以免后面的操作获取不到值
$.ajaxSettings.async = false;
$.getJSON('/PracticeEnterprise/GetDeptProperty', function (data) {
$('#deptProperty').empty();
$.each(data, function (i, item) {
$('#deptProperty').append($('<option></option>').val(item.Value).text(item.Text));
});
});
}

效果:

aaarticlea/png;base64,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" alt="" />

c# select标签绑定枚举,并以Description做Text显示的更多相关文章

  1. html中select标签根据枚举获得值的总结

    不知不觉在公司一个多月了,这一个月做了一个支票申请的web页面功能,都不是特别难,审核有公司给的工作流,分页工具和很多公用工具公司也都给了,所以觉得难度都不是很大.今天主管让我们修改了以前做的项目的代 ...

  2. layui中选中select标签 隐藏div

    在select标签中添加 lay-filter="cartype" <script type="text/javascript"> form.on( ...

  3. select获取选中的option(包含value和text,重点是text怎么获取)

    简单描述:后台需要获取到select标签选择的内容,也就是text,该怎么取呢?很简单. 代码: //hml代码<div class="col-md-6"> <l ...

  4. 2017年3月25日工作日志:Jquery使用小结[绑定事件判断、select标签、军官证正则]

    jQuery获取DOM绑定事件 在1.8.0版本之前,我们要想获取某个DOM绑定的事件处理程序可以这样: $.data(domObj,'events');//或者$('selector').data( ...

  5. jQ给下拉框绑定事件,为什么要绑定在框(select标签)上,而不是绑定在选项(option标签)上

    这是我在学习锋利的 jquery 书中 5.1.4 的代码时遇到的一个小问题,源代码如下: <head> <style type="text/css"> * ...

  6. ASP.NET Core 四种方式绑定枚举值

    前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...

  7. angular中的 input select 值绑定无效,以及多出一个空白选项问题

    问题: <!-- 问题标签 --> <select ng-model="sortType"> <option value="1"& ...

  8. m_Orchestrate learning system---八、下拉列表(select标签)如何实现链接功能

    m_Orchestrate learning system---八.下拉列表(select标签)如何实现链接功能 一.总结 一句话总结:option的值就是链接地址,选择事件为指向选中的option的 ...

  9. <select>标签,不要在select标签中写value属性!!!

    <select> select标签,一个选择框标签,在开发中很多时候会用到这个标签,例如选择生日19**年,或者在segmentfault中编辑文章时选择'原创','转载',还是'翻译'等 ...

随机推荐

  1. LoadRunner编程之跳出迭代【exit(-1)和return 0】

    只运行了一次迭代,就结束了. LR脚本实践:关于lr中exit(-1)和return 0的区别 exit(-1):从当前action里面exit(-1)所在行,当前迭代里面直接退出来,终止运行:   ...

  2. C#多线程编程总结

    VS2008.C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来.一个最直接的方法便是使用多线程.多线程编程的方式在W ...

  3. String的一些总结(JAVA)

    equals: String s1=new String("Hello"); String s2=new String("Hello"); System.out ...

  4. SpringMyBatis解析3-MapperFactoryBean

    在使用mybatis的时候,我们获取dao的方式一般是这样: SqlSession session=sessionFactory.openSession(); PersonDao personDao= ...

  5. 试听笔记:技术狂人nodejs

    nodejs概念: 让javascript运行在服务端的开发平台.不是一种语言,不是框架,不是库.特点:单线程异步.事件驱动. PHP.JAVA既是语言也是平台. 创始人:Ryan nodejs cm ...

  6. 指针与const

    指向常量的指针,不能用于改变其所指对象的值. 指针的类型必须与所指对象的类型一致,但是有两个例外,第一种是允许令一个指向常量的指针指向一个非常量对象: double dra1 = 3.14; cons ...

  7. 使用frameset时的target属性

    http://blog.sina.com.cn/s/blog_8f82e8280101bwx9.html

  8. BestCoder Round #65

    博弈 1002 ZYB's Game 题意:中文 分析:假定两个人是绝顶聪明的,一定会采取最优的策略.所以如果选择X的左边的一个点,那么后手应该选择X的右边对称的点,如果没有则必输,否则必胜,然后再分 ...

  9. 解决ADT升级报错

    方法一: 将https://dl-ssl.google.com/android/eclipse/ 改成 http://dl-ssl.google.com/android/eclipse/: 方法二: ...

  10. iOS学习20之UIView

    1. UI编程概述 UI的本意是用户界面,是英文 User 和 Interface 的缩写. UI设计则是指对软件的人机交互.操作逻辑.界面美观的整体设计. 好的UI设计不仅是让软件变得有个性有品位, ...