zoukankan      html  css  js  c++  java
  • C# 自定义配置文件

    学无止境,精益求精

    十年河东,十年河西,莫欺少年穷

    学历代表你的过去,能力代表你的现在,学习代表你的将来

    配置文件有两种设置方式,第一种是直接在网站根目录下的web.config中设置;第二种方式是自定义配置文件,在web.config中指定其他配置文件的路径。

    第一种:除了在常用的appSettings节点下进行<add/>添加,还可以在<configSections>节点下设置<section/>节点,

    第二种:完全和web.config没有关联

    关于第一种,大家可参考博客:https://www.cnblogs.com/len0031/p/7571594.html

    本篇主要讲解第二种

    我们都知道,在项目发布后,如果在生产环境修改配置文件,会重启IIS,这也就意味着会刷新所有服务,会影响用户的使用,导用户的操作失败。

    因此,在大项目中,我们的许多配置除了使用配置文件外,还可以使用自定义的配置文件,这种配置文件修改时,不会影响用户的使用,这就是使用这类配置文件的好处。

    其实,配置文件就是一个XML文件,所谓操作自定义配置文件其核心就是操作XML文件

    我们在项目根目录新建一个SelectItem.config,如下:

    <?xml version="1.0" encoding="utf-8"?>
    <!--自定义配置文件,用于配置项-->
    <config>
      <!-- 同种类型的验证码,每天最多的接收次数-->
      <dataConfig value="AuthCodeCount">10</dataConfig>
      <!-- 发送验证码后,有效时长(分钟)-->
      <dataConfig value="AuthCodeTime">2</dataConfig>
      <!-- 发送验证码后,JS控制效果时长(120秒)-->
      <dataConfig value="AuthCodeTimeLong">120</dataConfig>
    </config>

    那么如何读取这个文件呢?

    在项目的公共方法层新建如下类:SelectItemConfig,用于读取XML文件,如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    
    namespace Common
    {
        public class SelectItemConfig
        {
            private XmlDocument _doc;
            private XmlNode _rootNode;
    
            public SelectItemConfig(String mapPath, string name)
            {
                _doc = new XmlDocument();
                _doc.Load(mapPath + name);
                _rootNode = _doc.DocumentElement;
            }
    
            public void setConfig(String key, String value)
            {
                if (value == null || (value != null && value.Length == 0)) { return; }
    
                if (_rootNode.SelectSingleNode(key) == null || (_rootNode.SelectSingleNode(key) != null && _rootNode.SelectSingleNode(key).ChildNodes.Count == 0))
                {
                    XmlElement newNode = _doc.CreateElement(key);
                    newNode.InnerText = value;
                    _rootNode.AppendChild(newNode);
                }
                else
                {
                    _rootNode.SelectSingleNode(key).ChildNodes[0].InnerText = value;
                }
            }
    
            /// <summary>
            /// 获取单个节点的值
            /// </summary>
            /// <param name="key"></param>
            /// <returns></returns>
            public String getConfig(string key)
            {
                if (_rootNode.SelectSingleNode(key) != null)
                    if (_rootNode.SelectSingleNode(key).ChildNodes.Count > 0)
                        return _rootNode.SelectSingleNode(key).ChildNodes[0].Value;
                    else
                        return "";
                else
                    return null;
            }
    
            /// <summary>
            /// 获取key值对应的多个节点的值的集合
            /// </summary>
            /// <param name="key"></param>
            /// <returns></returns>
            public Dictionary<string, string> getItemListByKey(string key)
            {
                Dictionary<string, string> dic = new Dictionary<string, string>() { };
                if (_rootNode.SelectSingleNode(key) != null)
                {
                    XmlNodeList xmlNode = _rootNode.SelectNodes(key);
                    int nodeCount = _rootNode.SelectNodes(key).Count;
                    if (nodeCount > 0)
                    {
                        for (int i = 0; i < nodeCount; i++)
                        {
                            var item = _rootNode.SelectNodes(key).Item(i);
                            dic.Add(item.Attributes["value"].Value, item.InnerText);//Select 下拉框 Value属性
                        }
                    }
                }
                return dic;
            }
    
            public Boolean SaveConfig(String mapPath)
            {
                try
                {
                    _doc.Save(mapPath + @"FlexPaper.config");
                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }
    }
    View Code

    用下面的方法读取某一个Key的值

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    
    namespace Common
    {
        public class SelectHelper
        {
            private static SelectItemConfig configManager;
            public static Dictionary<string, string> GetConfigByKey(string key, string name = "SelectItem.config")
            {
                string mapPath = HttpContext.Current.Server.MapPath("~/");
                configManager = new SelectItemConfig(mapPath, name);
                Dictionary<string, string> dic = configManager.getItemListByKey(key);
                return dic.OrderBy(p => p.Value).ToDictionary(o => o.Key, p => p.Value); ;
            }
    
            public static Dictionary<string, string> GetConfigByKeyForFields(string key, string name = "SelectItem.config")
            {
                string mapPath = HttpContext.Current.Server.MapPath("~/");
                configManager = new SelectItemConfig(mapPath, name);
                Dictionary<string, string> dic = configManager.getItemListByKey(key);
                return dic;
            }
    
            public static string GetFiled(string name)
            {
                Dictionary<string, string> dic = SelectHelper.GetConfigByKey("dataConfig");
                string Filed = string.Empty;
                foreach (var item in dic)
                {
                    if (item.Key.ToLower() == name.ToLower())
                    {
                        Filed = item.Value;
                        break;
                    }
                }
                return Filed;
            }
        }
    }
    View Code

    这样,就可以读取某一个值了,但是既然方法放在公共层,我们有必要建立一个公共类,用于获取对应自定义配置文件的属性,如下:

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Linq;
    using System.Text;
    
    namespace Common
    {
        /// <summary>
        /// Panda.Chen
        /// </summary>
        public class Constants
        {
            public static string AuthCodeCount = SelectHelper.GetFiled("AuthCodeCount");
            public static string AuthCodeTime = SelectHelper.GetFiled("AuthCodeTime");
            public static string AuthCodeTimeLong = SelectHelper.GetFiled("AuthCodeTimeLong");
        }
    }
    View Code

    上述便是读取自定义配置文件某一个Key的方法,当然,我们还可以通过自定义配置文件来构造下拉框的选项,如下:

    <?xml version="1.0" encoding="utf-8"?>
    <config>
      <SupplierInfo value="SupplierName">供方名称</SupplierInfo>
      <SupplierInfo value="SupplierYear">注册年份</SupplierInfo>
      <!--上年度职工月平均工资(元/月)-->
      <monthSalary value="5580.00">5580.00</monthSalary>
      <!--全国城镇居民可支配收入(年/元)-->
      <yearSalary value="28844.00">28844.00</yearSalary>
      <!--年份-->
      <yearValue value="2016">2016</yearValue>
      <!--客户属性-->
      <kehushuxing value="">--请选择--</kehushuxing>
      <kehushuxing value="正式客户">正式客户</kehushuxing>
      <kehushuxing value="潜在客户">潜在客户</kehushuxing>
    
    
      <!--客户性质-->
      <kehuxingzhi value="">--请选择--</kehuxingzhi>
      <kehuxingzhi value="司机">司机</kehuxingzhi>
      <kehuxingzhi value="伤者">伤者</kehuxingzhi>
      <kehuxingzhi value="身故">身故</kehuxingzhi>
    
    
      <!--案件类型-->
      <anjianleixing value="">--请选择--</anjianleixing>
      <anjianleixing value="交通事故">交通事故</anjianleixing>
      <anjianleixing value="工伤">工伤</anjianleixing>
      <anjianleixing value="其他">其他</anjianleixing>
    
    
      <!--案件属性-->
      <anjianshuxing value="">--请选择--</anjianshuxing>
      <anjianshuxing value="垫付案件">垫付案件</anjianshuxing>
      <anjianshuxing value="非垫付案件">非垫付案件</anjianshuxing>
    
      <!--客户来源-->
      <kehulaiyuan value="">--请选择--</kehulaiyuan>
      <kehulaiyuan value="交警队">交警队</kehulaiyuan>
      <kehulaiyuan value="医生">医生</kehulaiyuan>
      <kehulaiyuan value="缘故">缘故</kehulaiyuan>
      <kehulaiyuan value="医院">医院</kehulaiyuan>
      <kehulaiyuan value="销售">销售</kehulaiyuan>
      <kehulaiyuan value="其他">其他</kehulaiyuan>
    
    
      <!--案件状态-->
      <anjianzhuangtai value="">--请选择--</anjianzhuangtai>
      <anjianzhuangtai value="待签">待签</anjianzhuangtai>
      <anjianzhuangtai value="已签">已签</anjianzhuangtai>
      <anjianzhuangtai value="放弃">放弃</anjianzhuangtai>
      <!--财务案件状态-->
      <CWanjianzhuangtai value="">--请选择--</CWanjianzhuangtai>
      <CWanjianzhuangtai value="结案">结案</CWanjianzhuangtai>
      <CWanjianzhuangtai value="坏账">坏账</CWanjianzhuangtai>
      <CWanjianzhuangtai value="退案">退案</CWanjianzhuangtai>
    
    
      <!--垫付方式-->
      <dianfufangshi value="">--请选择--</dianfufangshi>
      <dianfufangshi value="路救">路救</dianfufangshi>
      <dianfufangshi value="银行">银行</dianfufangshi>
      <dianfufangshi value="基金">基金</dianfufangshi>
      <dianfufangshi value="交强险">交强险</dianfufangshi>
      <dianfufangshi value="其他">其他</dianfufangshi>
    
      <!--发票是否分割-->
      <shifoufenge value="">--请选择--</shifoufenge>
      <shifoufenge value="是"></shifoufenge>
      <shifoufenge value="否"></shifoufenge>
    
      <!--客户信用-->
      <kehuxinyong value="">--请选择--</kehuxinyong>
      <kehuxinyong value="良好">良好</kehuxinyong>
      <kehuxinyong value="黑名单">黑名单</kehuxinyong>
      <!--劳动等级-->
      <LaoDongDJ value="">--请选择--</LaoDongDJ>
      <LaoDongDJ value="10级">10级</LaoDongDJ>
      <LaoDongDJ value="9级">9级</LaoDongDJ>
      <LaoDongDJ value="8级">8级</LaoDongDJ>
      <LaoDongDJ value="7级">7级</LaoDongDJ>
      <LaoDongDJ value="6级">6级</LaoDongDJ>
      <LaoDongDJ value="5级">5级</LaoDongDJ>
      <LaoDongDJ value="4级">4级</LaoDongDJ>
      <LaoDongDJ value="3级">3级</LaoDongDJ>
      <LaoDongDJ value="2级">2级</LaoDongDJ>
      <LaoDongDJ value="1级">1级</LaoDongDJ>
      <LaoDongDJ value="死亡">死亡</LaoDongDJ>
      <!--责任认定-->
      <zerenrending value="">--请选择--</zerenrending>
      <zerenrending value="全责">全责</zerenrending>
      <zerenrending value="主责">主责</zerenrending>
      <zerenrending value="同责">同责</zerenrending>
      <zerenrending value="次责">次责</zerenrending>
      <zerenrending value="无责">无责</zerenrending>
      <zerenrending value="无法认定">无法认定</zerenrending>
      <!--事故性质-->
      <shiguxingzhi value="">--请选择--</shiguxingzhi>
      <shiguxingzhi value="机动车与非机动车">机动车与非机动车</shiguxingzhi>
      <shiguxingzhi value="机动车与行人">机动车与行人</shiguxingzhi>
      <shiguxingzhi value="机动车与机动车">机动车与机动车</shiguxingzhi>
      <shiguxingzhi value="非机动车与非机动车">非机动车与非机动车</shiguxingzhi>
      <shiguxingzhi value="非机动车与行人">非机动车与行人</shiguxingzhi>
      <shiguxingzhi value="单车事故">单车事故</shiguxingzhi>
    
    
      <!--事故位置-->
      <shiguweizhi value="">--请选择--</shiguweizhi>
      <shiguweizhi value="十字路口">十字路口</shiguweizhi>
      <shiguweizhi value="丁字路口">丁字路口</shiguweizhi>
      <shiguweizhi value="同向道路">同向道路</shiguweizhi>
      <shiguweizhi value="相向道路">相向道路</shiguweizhi>
      <!--治疗方式-->
      <zhiliaofangshi value="">--请选择--</zhiliaofangshi>
      <zhiliaofangshi value="手术">手术</zhiliaofangshi>
      <zhiliaofangshi value="保守">保守</zhiliaofangshi>
    
      <!--科室-->
      <keshi value="">--请选择--</keshi>
      <keshi value="骨科">骨科</keshi>
      <keshi value="脑外科">脑外科</keshi>
      <keshi value="胸外科">胸外科</keshi>
      <keshi value="普外科">普外科</keshi>
      <keshi value="其他">其他</keshi>
      <!--是否需要二次手术-->
      <ercishoushu value="">--请选择--</ercishoushu>
      <ercishoushu value="手术">手术</ercishoushu>
      <ercishoushu value="非手术">非手术</ercishoushu>
      <!--医疗跟踪类型-->
      <yiliaogenzong value="">--请选择--</yiliaogenzong>
      <yiliaogenzong value="0">首次跟踪</yiliaogenzong>
      <yiliaogenzong value="1">复诊跟踪</yiliaogenzong>
      <!--材料收集状态-->
      <cailiaoshouji value="">--请选择--</cailiaoshouji>
      <cailiaoshouji value="收集完成">收集完成</cailiaoshouji>
      <cailiaoshouji value="二次收集">二次收集</cailiaoshouji>
    
      <!--是否精神会诊-->
      <isjshz value="">--请选择--</isjshz>
      <isjshz value="是"></isjshz>
      <isjshz value="否"></isjshz>
      <!--精神会诊鉴定所-->
      <jiandiansuo_jshz value="">--请选择--</jiandiansuo_jshz>
      <jiandiansuo_jshz value="广济司法鉴定所">广济司法鉴定所</jiandiansuo_jshz>
    
      <!--是否临床鉴定-->
      <islcjd value="">--请选择--</islcjd>
      <islcjd value="是"></islcjd>
      <islcjd value="否"></islcjd>
    
      <!--临床鉴定-鉴定所-->
      <jiandiansuo_lcjd value="">--请选择--</jiandiansuo_lcjd>
      <jiandiansuo_lcjd value="同济司法鉴定所">同济司法鉴定所</jiandiansuo_lcjd>
      <jiandiansuo_lcjd value="苏州大学司法鉴定中心">苏州大学司法鉴定中心</jiandiansuo_lcjd>
      <jiandiansuo_lcjd value="市立医院司法鉴定所">市立医院司法鉴定所</jiandiansuo_lcjd>
      <jiandiansuo_lcjd value="常熟市第一人民医院司法鉴定所">常熟市第一人民医院司法鉴定所</jiandiansuo_lcjd>
      <jiandiansuo_lcjd value="张家港市中医医院司法鉴定所">张家港市中医医院司法鉴定所</jiandiansuo_lcjd>
      <jiandiansuo_lcjd value="其他">其他</jiandiansuo_lcjd>
    
      <!--鉴定进程-->
      <jiandingJC value="">--请选择--</jiandingJC>
      <jiandingJC value="已鉴定">已鉴定</jiandingJC>
      <jiandingJC value="暂未鉴定">暂未鉴定</jiandingJC>
    
      <!--商业保险公司-->
      <InsurerGS value="">--请选择--</InsurerGS>
      <InsurerGS value="人保">人保</InsurerGS>
      <InsurerGS value="太保">太保</InsurerGS>
      <InsurerGS value="平安">平安</InsurerGS>
      <InsurerGS value="阳光">阳光</InsurerGS>
      <InsurerGS value="中华联合">中华联合</InsurerGS>
      <InsurerGS value="永诚">永诚</InsurerGS>
      <InsurerGS value="长安">长安</InsurerGS>
      <InsurerGS value="其他">其他</InsurerGS>
    
      <!--交强险保险公司-->
      <CompulsoryGS value="">--请选择--</CompulsoryGS>
      <CompulsoryGS value="人保">人保</CompulsoryGS>
      <CompulsoryGS value="太保">太保</CompulsoryGS>
      <CompulsoryGS value="平安">平安</CompulsoryGS>
      <CompulsoryGS value="阳光">阳光</CompulsoryGS>
      <CompulsoryGS value="中华联合">中华联合</CompulsoryGS>
      <CompulsoryGS value="永诚">永诚</CompulsoryGS>
      <CompulsoryGS value="长安">长安</CompulsoryGS>
      <CompulsoryGS value="其他">其他</CompulsoryGS>
    
      <!--垫付类型-->
      <DpayTypeSel value="">--请选择--</DpayTypeSel>
      <DpayTypeSel value="安泰">安泰</DpayTypeSel>
      <DpayTypeSel value="道路救援基金">道路救援基金</DpayTypeSel>
      <DpayTypeSel value="交强险">交强险</DpayTypeSel>
      <DpayTypeSel value="其他">其他</DpayTypeSel>
    
      <!--调解状态-->
      <TiaoJieZT value="">--请选择--</TiaoJieZT>
      <TiaoJieZT value="完成">完成</TiaoJieZT>
      <TiaoJieZT value="未完成">未完成</TiaoJieZT>
      <TiaoJieZT value="转诉讼">转诉讼</TiaoJieZT>
    
      <!--诉前准备状态-->
      <LawBeforeStatus value="">--请选择--</LawBeforeStatus>
      <LawBeforeStatus value="材料调取">材料调取</LawBeforeStatus>
      <LawBeforeStatus value="撰写诉状">撰写诉状</LawBeforeStatus>
      <LawBeforeStatus value="诉讼理算">诉讼理算</LawBeforeStatus>
      <LawBeforeStatus value="复印扫描">复印扫描</LawBeforeStatus>
      <LawBeforeStatus value="预收诉讼费">预收诉讼费</LawBeforeStatus>
      <!--诉讼期状态-->
      <LawStatus value="">--请选择--</LawStatus>
      <LawStatus value="案件移交">案件移交</LawStatus>
      <LawStatus value="立案">立案</LawStatus>
      <LawStatus value="传票">传票</LawStatus>
      <LawStatus value="开庭">开庭</LawStatus>
      <LawStatus value="文书送达">文书送达</LawStatus>
    
      <!--诉后结案状态-->
      <LawHANStatus value="">--请选择--</LawHANStatus>
      <LawHANStatus value="退款">退款</LawHANStatus>
      <LawHANStatus value="收费">收费</LawHANStatus>
    
      <!--是否还清-->
      <IsHuanQingSel value="">--请选择--</IsHuanQingSel>
      <IsHuanQingSel value="是"></IsHuanQingSel>
      <IsHuanQingSel value="否"></IsHuanQingSel>
    
      <!--是否-->
      <YesOrNo value="">--请选择--</YesOrNo>
      <YesOrNo value="是"></YesOrNo>
      <YesOrNo value="否"></YesOrNo>
    
      <!--公告事项-->
      <GongGaoSXSel value="">--请选择--</GongGaoSXSel>
      <GongGaoSXSel value="传票">传票</GongGaoSXSel>
      <GongGaoSXSel value="判决书">判决书</GongGaoSXSel>
      <GongGaoSXSel value="其他">其他</GongGaoSXSel>
      <!--诉讼结案方式-->
      <SSJATypSel value="">--请选择--</SSJATypSel>
      <SSJATypSel value="调解">调解</SSJATypSel>
      <SSJATypSel value="判决">判决</SSJATypSel>
      <!--预收诉讼费方式-->
    
      <YuShouSsfTyeSel value="">--请选择--</YuShouSsfTyeSel>
      <YuShouSsfTyeSel value="支付宝">支付宝</YuShouSsfTyeSel>
      <YuShouSsfTyeSel value="微信">微信</YuShouSsfTyeSel>
      <YuShouSsfTyeSel value="现金">现金</YuShouSsfTyeSel>
      <YuShouSsfTyeSel value="客户法院自缴">客户法院自缴</YuShouSsfTyeSel>
      <YuShouSsfTyeSel value="银行转账">银行转账</YuShouSsfTyeSel>
      <YuShouSsfTyeSel value="其他">其他</YuShouSsfTyeSel>
    
    
      <!--临时回访类型-->
      <visitTyp value="">--请选择--</visitTyp>
      <visitTyp value="首签案件回访">首签案件回访</visitTyp>
      <visitTyp value="医疗跟踪回访">医疗跟踪回访</visitTyp>
      <visitTyp value="伤残鉴定回访">伤残鉴定回访</visitTyp>
      <visitTyp value="材料收集回访">材料收集回访</visitTyp>
    
    </config>
    View Code

    那么如何多去下拉选项呢?

    如下:

        public class Anb_MainLawModel:BaseModel
        {
            public Dictionary<int, string> CustomerNumList = new Dictionary<int, string>();// 键值对  NodeId  案件名称
            public Dictionary<int, string> UserList = new Dictionary<int, string>();
            public Dictionary<int, string> IsOverList = new Dictionary<int, string>();
            public Dictionary<string, string> NodeList = new Dictionary<string, string>();
           
            public Dictionary<string, string> CourtList = new Dictionary<string, string>();//处理交警队
            //以上固定
            public Dictionary<string, string> LawStatus = new Dictionary<string, string>();//商业保险公司
            public Dictionary<string, string> GongGaoSXSel = new Dictionary<string, string>();//公告事项
            public Dictionary<string, string> YuShouSsfTyeSel = new Dictionary<string, string>();//公告事项
            //以上固定
            public StaticPagedList<MainLawModel> E_list = null;
            public Anb_MainLawModel()
            {
    
            }
            public Anb_MainLawModel(int page, int pagesize, string where)
            {
                int totalPage = 0;
                int recordCount = 0;
                var data = Pagination.getPageListForMainLaw("V_AnbMainLaw", "*", "YyfLawId desc", where, pagesize, page, out totalPage, out recordCount);
    
                E_list = new StaticPagedList<MainLawModel>(data, page, pagesize, recordCount);
                foreach (var item in E_list)
                {
                    MainLawModel model = new MainLawModel();
                    model = Mapper.DynamicMap<MainLawModel>(item);
                    item.LiAnEmpIdString = Manger.GetUserInfo_2(Convert.ToInt32(model.LiAnEmpId)).EmployeeName;
                    item.KaiTimeEmpIdString = Manger.GetUserInfo_2(Convert.ToInt32(model.KaiTimeEmpId)).EmployeeName;
                }
            }
    
            /// <summary>
            /// 当前登录人ID
            /// </summary>
            /// <param name="UserId"></param>
            public Anb_MainLawModel(int UserId, int CusId = 0)
            {
                CourtList = Information.GetCourtListByCompany(UserHelper.CurrentPrincipal.CompanyId);
                LawStatus = SelectHelper.GetConfigByKey("LawStatus");
                GongGaoSXSel = SelectHelper.GetConfigByKey("GongGaoSXSel");
                YuShouSsfTyeSel = SelectHelper.GetConfigByKey("YuShouSsfTyeSel");
                //
                var data = Procedure.Proc_Single_Anb_MainLaw(UserId, CommonEnum.NodeFun.Anb_MainLaw.ToString());
                if (data.Count() > 0)
                {
                    foreach (var item in data)
                    {
                        if (AnJian.checkAnJianNode(item.CustomerNum, CommonEnum.NodeFun.Anb_MainLaw.ToString()))
                            CustomerNumList.Add(item.AnJianNodeId, item.AnJianName);
                    }
                }
                //
                UserInfoModel M = Manger.GetUserInfo_2(UserId);
                if (M != null)
                {
                    UserList = Manger.GetEmployeeByCompany(M.CompanyId);
                    //获取功能节点
                    Array NodeAry = Enum.GetValues(typeof(CommonEnum.NodeFun));//"Array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 Array 类显式派生。用户应当使用由语言提供的数组构造。"
                    foreach (var item in NodeAry)
                    {
                        string Key = item.ToString();
                        string Value = EnumHelper.GetDescription((Enum)item);
                        if (!(Key == CommonEnum.NodeFun.Anb_MainLaw.ToString() || Key == CommonEnum.NodeFun.Anb_AnJian.ToString()))
                        {
                            NodeList.Add(Key, Value);
                        }
                    }
                    Array OverAry = Enum.GetValues(typeof(CommonEnum.IsOver));//"Array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 Array 类显式派生。用户应当使用由语言提供的数组构造。"
                    foreach (var item in OverAry)
                    {
                        int Key = (int)item;
                        string Value = EnumHelper.GetDescription((Enum)item);
                        IsOverList.Add(Key, Value);
                    }
                }
            }
        }
    View Code

    HTML如下:

     <li>
            <label>劳动能力鉴定等级<span style="color: red;">*</span></label>
            <select id="GS_LDNLleave" name="GS_LDNLleave" ng-model="Anb.GS_LDNLleave" class="form-control">
                @foreach (var item in Model.LaoDongDJ)
                {
                    <option value="@item.Key">@item.Value</option>
                }
            </select>
        </li>
        <li>
            <label>是否进行工伤登记<span style="color: red;">*</span></label>
            <select id="GS_Has" name="GS_Has" ng-model="Anb.GS_Has" class="form-control">
                <option value="">--请选择--</option>
                <option value="是"></option>
                <option value="否"></option>
            </select>
        </li>
    View Code

    好了,基本使用就这么多,谢谢

    @陈卧龙的博客

  • 相关阅读:
    linux下好用软件全记录
    Shell之Here Document
    ThinkPHP判断更新是否成功的正确方法
    memcached单点登录配置
    gedit搭建c开发环境
    两种算法的比较,学习算法的重要性
    解决sendmail发送邮件慢的问题
    直接拿来用,10个PHP代码片段(收藏)
    Nginx 简单的负载均衡配置示例
    Nginx 虚拟主机 VirtualHost 配置
  • 原文地址:https://www.cnblogs.com/chenwolong/p/webconfig.html
Copyright © 2011-2022 走看看