中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

每天進步一點點——在Linq結果中增加項

發布時間:2020-07-04 02:02:08 來源:網絡 閱讀:503 作者:bigman_ren 欄目:編程語言
   Linq已經出現在.net中好久了,但是卻一直沒有用過,所以也沒有過深入的學習。換了家新單位,項目中卻大量的使用了Linq,時不時的會遇到個障礙。在這里記錄下,算是一個積累,也希望能給遇到同樣問題的同學一點兒幫助。

   今天遇到的問題是這樣的,我需要把一個枚舉綁定到View(項目使用了ASP.NET MVC框架)上的下拉列表控件。

   

   為了說明這個問題,先準備了一段代碼,聲明一個枚舉,用來在頁面上進行綁定

using System.ComponentModel;
namespace MvcApplication1.Views.Home
{
    enum EnumExample
    {
        [Description("a")]
        a = 1,
        [Description("b")]
        b = 2,
        [Description("c")]
        c = 3,
    }
}

   其實只是綁定這個枚舉,還是挺簡單的,首先向動態字典ViewBag里添加數據

ViewBag.EnumExampleData = from EnumExample p in Enum.GetValues(typeof(EnumExample))
                                      select new SelectListItem
                                      {
                                          Text = p.ToString(),
                                          Value = Convert.ToInt32(p).ToString()
                                      };

   然后在頁面上用

@Html.DropDownListFor(p=>p.EnumExample,(IEnumerable<SelectListItem>)ViewBag.EnumExampleData)

就可以生成一個下拉列表控件了


   但是這跟實際項目中的要求還稍有點兒差距,一般我們以枚舉作為狀態值或者屬性值時,進行某些操作時,比如查詢,有可能需要這個值為空(查所有狀態),所以我們還需要在下拉控件中增加一個“請選擇”或者“所有值”的項。

   當然實現的方式會有很多種,前臺直接使用JavaScript來添加,或者先維護一個包含枚舉項值得列表,再向列表中添加一個“all”的項,等等等等。但我今天就是想在給ViewBag.EnumExampleData賦值的時候一次性的就實現這個需求。由于對Linq真的不是太熟,琢磨出下面這么一種方法,給大家參考

ViewBag.EnumExampleData = (from q in new List<SelectListItem> { new SelectListItem { Text = "all", Value = "all" } }
                           select q)
                           .Concat(from EnumExample p in Enum.GetValues(typeof(EnumExample))
                                   orderby p
                                   select new SelectListItem
                                   {
                                       Text = p.ToString(),
                                       Value = Convert.ToInt32(p).ToString()
                                   });

   方法不算聰明,就是用了一下Concat。如果大家有其他的方式也可以交流一下哈。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博罗县| 分宜县| 固镇县| 平陆县| 湘潭市| 巴林右旗| 兰西县| 元氏县| 乌兰浩特市| 寿光市| 桦南县| 蒙山县| 积石山| 安国市| 河源市| 朔州市| 二连浩特市| 久治县| 高雄市| 廊坊市| 盘锦市| 揭阳市| 虞城县| 钦州市| 江津市| 林州市| 商城县| 通州市| 锡林郭勒盟| 隆林| 元谋县| 炎陵县| 合肥市| 通辽市| 黔东| 电白县| 卓资县| 裕民县| 元阳县| 太和县| 合作市|