最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字

 更新時間:2022年10月22日 11:48:34   作者:Darren Ji  
這篇文章介紹了ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

標題可能無法表達我的本意。比如,有這樣一個枚舉:

    public enum MyChoice
    {
        MyFirstChoice = 0,
        MySecondChoice =1,
        MyThirdChoice = 2
    }

數(shù)據(jù)庫中,某表某字段保存值為"0,1,2",在顯示的時候,我們希望是"第一個選擇,第二個選擇,第三個選擇"。如何做呢?

可以為枚舉項上面標注自定義特性。先自定義一個特性如下:

    public class EnumDisplayNameAttribute : Attribute
    {
        private string _displayName;
        public EnumDisplayNameAttribute(string displayName)
        {
            _displayName = displayName;
        }
        public string DisplayName
        {
            get
            {
                return _displayName;
            }
        }
    }

然后,把自定義特性標注放到枚舉項上去。

    public enum MyChoice
    {
        [EnumDisplayName("我的第一個選擇")]
        MyFirstChoice = 0,
        [EnumDisplayName("我的第二個選擇")]
        MySecondChoice =1,
        [EnumDisplayName("我的第三個選擇")]
        MyThirdChoice = 2
    }

現(xiàn)在,需要一個幫助方法,能讀出枚舉項上的自定義特性EnumDisplayName。

   public class EnumExt
    {
        /// <summary>
        /// 獲取枚舉項的注釋
        /// </summary>
        /// <param name="e">枚舉項</param>
        /// <returns></returns>
        public static string GetEnumDescription(object e)
        {
            //獲取枚舉項
            Type t = e.GetType();
            //獲取枚舉項的字段
            FieldInfo[] fis = t.GetFields();
            foreach (FieldInfo fi in fis)
            {
                //如果當前字段名稱不是當前枚舉項
                if (fi.Name != e.ToString())
                {
                    continue;//結(jié)束本次循環(huán)
                }
                //如果當前字段的包含自定義特性
                if (fi.IsDefined(typeof (EnumDisplayNameAttribute), true))
                {
                    //獲取自定義特性的屬性值
                    return (fi.GetCustomAttributes(typeof(EnumDisplayNameAttribute), true)[0] as EnumDisplayNameAttribute).DisplayName;
                }
            }
            return e.ToString();
        }
        public static List<SelectListItem> GetSelectList(Type enumType)
        {
            List<SelectListItem> selectList = new List<SelectListItem>();
            //selectList.Add(new SelectListItem{Text = "--請選擇--",Value = ""});
            foreach (object e in Enum.GetValues(enumType))
            {
                selectList.Add(new SelectListItem { Text = GetEnumDescription(e), Value = ((int)e).ToString() });
            }
            return selectList;
        }
    }

以上,

GetEnumDescription方法根據(jù)枚舉項獲取其上的自定義特性EnumDisplayNameAttribute的DisplayName屬性值。

GetSelectList方法根據(jù)枚舉的Type類型返回SelectListItem集合,通常在ASP.NET MVC中使用。

最后,就能實現(xiàn)本篇的需求:

        static void Main(string[] args)
        {
            string myChoiceInt = "0,1,2";
            string[] choiceArr = myChoiceInt.Split(',');
            string temp = string.Empty;
            foreach (string item in choiceArr)
            {
                //轉(zhuǎn)換成枚舉的類型
                short enumValShort = short.Parse(item);
                temp = temp + EnumExt.GetEnumDescription((MyChoice)enumValShort) + ",";
            }
            Console.WriteLine(temp.Substring(0, temp.Length - 1));
            Console.ReadKey();
        }

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 在ASP.NET 中實現(xiàn)單點登錄

    在ASP.NET 中實現(xiàn)單點登錄

    在ASP.NET 中實現(xiàn)單點登錄...
    2007-03-03
  • c#中實現(xiàn)文件拖放打開的方法

    c#中實現(xiàn)文件拖放打開的方法

    向ListBox拖入一個文件,ListBox顯示該文件的路徑,然后單擊該路徑,點擊Open按鈕打開該文件
    2006-10-10
  • .NET?6中System.Text.Json的七個特性

    .NET?6中System.Text.Json的七個特性

    這篇文章介紹了.NET?6中System.Text.Json的七個特性,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • ASP.NET?Core中的wwwroot文件夾

    ASP.NET?Core中的wwwroot文件夾

    這篇文章介紹了ASP.NET?Core中的wwwroot文件夾,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • .Net中控件的命名規(guī)則

    .Net中控件的命名規(guī)則

    這篇文章介紹了.Net中控件的命名規(guī)則,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • .NET中開源文檔操作組件DocX的介紹與使用

    .NET中開源文檔操作組件DocX的介紹與使用

    在大家日常開發(fā)中讀寫Offic格式的文檔,大家多少都有用到,可能方法也很多,組件有很多。這里不去討論其他方法的優(yōu)劣,只是向大家介紹一款開源的讀寫word文檔的組件。讀寫Excel有NPOI,讀寫Word,那看看DocX吧。下面跟著小編一起來學習學習吧。
    2016-12-12
  • C#聲明方法實例說明

    C#聲明方法實例說明

    方法(Method)是一個已命名的語句集。如果以前使用過其他編程語言,如C或Visual Basic等,就可以將方法視為函數(shù)或者子程序相似的東西。每個方法都有一個名稱和一個主體。方法名應該是一個有意義的標識符,它應描述出方法的用途(如CalculateIncomeTax)。方法主體包含了調(diào)用方法時實際執(zhí)行的語句。你可以為大多數(shù)方法提供一些數(shù)據(jù)來進行處理,并讓它返回一些信息(通常是處理結(jié)果)。方法是一種基本的、功能強大的編程機制。
    2008-04-04
  • ASP.NET 入門的五個步驟

    ASP.NET 入門的五個步驟

    ASP.NET 入門的五個步驟...
    2007-01-01
  • ASP.NET?Core中的Configuration配置一

    ASP.NET?Core中的Configuration配置一

    這篇文章介紹了ASP.NET?Core中的Configuration配置,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • C#使用正則表達式實例

    C#使用正則表達式實例

    正則表達式(regular expression)是用來快速、高效地處理文本數(shù)據(jù)的工具。被處理的文本可以小到一個電子郵件地址,也可以大到一個多行文本輸入框中的文本數(shù)據(jù)。正則表達式不僅可用來確認一段文本是否與一個預定義的模式相匹配,還可以用于從文本中抽取符合某一模式的數(shù)據(jù)。
    2008-04-04

最新評論

筠连县| 钟山县| 镇坪县| 修武县| 晋宁县| 读书| 龙井市| 永定县| 监利县| 万年县| 九龙县| 富平县| 满城县| 辽宁省| 山东省| 凌海市| 肃北| 苏尼特左旗| 固始县| 梁山县| 昌邑市| 南乐县| 延吉市| 留坝县| 昌都县| 钟祥市| 余干县| 滨海县| 成安县| 武宣县| 建湖县| 六盘水市| 大荔县| 金华市| 聂荣县| 长丰县| 天柱县| 丹江口市| 寿阳县| 孟州市| 黎平县|