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

  开发中有些字段是枚举类型如 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. 【架构】MVP模型

    MVP模型一般要创建三个文件夹:View.Interactor(Model).Presenter 每个部分都有其接口和实现类,就是为了方便回调 这里做一个登陆界面为例子: 接口: Interactor ...

  2. 【pom.xml 依赖】使用net.sf.json-lib-2.4-jdk15.jar所需要的其他依赖架包 以及其一直在pom.xml报错的问题

    特此声明: json-lib-2.4-jdk15.jar仅它本身不够,必须如下的几个依赖架包都有才能使用!!! 首先 将.json-lib-2.4-jdk15.jar以及其相关的依赖架包的正确配置给出 ...

  3. 【maven 报错】maven项目执行maven install时报错Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

    在使用maven新建的web项目中,执行 执行如上的这两个操作,报错: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-co ...

  4. Android自动化压力测试之Monkey Test 异常解读(五)

    monkey结果分类 monkey结果详细解读 monkey运行log输出后,得读懂日志内容,定位错误 lgo日志顺序输出分别为  测试命令信息.随机事件流(11种事件).异常信息(anr.crash ...

  5. wpf中dropdownButton控件下拉居中。。。

    设置模版中popup控件的HorizontalOffset属性来控制居中. 还是对popup控件不熟,折腾了一会.

  6. WPF 颜色转换

    从字符串到画刷: var converter = new System.Windows.Media.BrushConverter(); var brush = (Brush)converter.Con ...

  7. The 2015 China Collegiate Programming Contest D.Pick The Sticks hdu 5543

    Pick The Sticks Time Limit: 15000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others ...

  8. Windows7下安装MongoDB

    1.下载地址:http://www.mongodb.org/downloads(32位还是64位自行选择).我下载的是:mongodb-win32-x86_64-2.4.5.zip 2.解压把mong ...

  9. 向 ViewPager 中添加 包含 ListView 的 Fragment

    对与fragment就不说什么了,直接看API手册吧,亲. 向 ViewPager 中添加 包含 ListView 的 Fragment 的过程比较麻烦.他所表现的效果就是新闻客户端的滑动翻页效果. ...

  10. Codeforces Round #251 (Div. 2) A - Devu, the Singer and Churu, the Joker

    水题 #include <iostream> #include <vector> #include <algorithm> using namespace std; ...