欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何使用ASP.NET?MVC獲取多級(jí)類別組合下的產(chǎn)品

本篇內(nèi)容主要講解“如何使用ASP.NET MVC獲取多級(jí)類別組合下的產(chǎn)品”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何使用ASP.NET MVC獲取多級(jí)類別組合下的產(chǎn)品”吧!

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的臨桂網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

假設(shè)有三級(jí)分類,關(guān)于分類這樣設(shè)計(jì):

    public class Category
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int ParentId { get; set; }
    }

然后產(chǎn)品可以屬于多個(gè)分類,以下的Categories屬性值是以英文逗號(hào)隔開(kāi)、由分類編號(hào)拼接而成的字符串。

    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Categories { get; set; }
    }

由于種種原因,Categories屬性值只是存儲(chǔ)了由第三級(jí)分類編號(hào)拼接而成的字符串。

在前端,需要把分類作為查詢條件來(lái)查詢產(chǎn)品,可能只選擇一級(jí)分類,把一個(gè)數(shù)字字符串(比如"1")發(fā)送給服務(wù)端;可能同時(shí)選擇一級(jí)和二級(jí)分類,也把一個(gè)數(shù)字字符串(比如"1,2")發(fā)送給服務(wù)端;當(dāng)然,也有可能同時(shí)選擇一級(jí)、二級(jí)和三級(jí)分類作為查詢條件(比如"1,2,3")。換句話說(shuō),如果諸如"1"或"1,2"或"1,2,3"這樣的查詢條件轉(zhuǎn)換成數(shù)組后,如果數(shù)組的每一個(gè)元素都被包含在Product的Categories屬性值轉(zhuǎn)換成的數(shù)組中,那這個(gè)產(chǎn)品就符合搜索條件。

簡(jiǎn)單來(lái)說(shuō),是這樣:假設(shè)搜索條件是"1,2",Product的Categories屬性值為"1,3,2,5",我們不是判斷"1,2"這個(gè)字符串是否包含在"1,3,2,5"字符串中,而是把"1,2"先split成數(shù)組,叫做array1, 把"1,3,2,5"也split成數(shù)組,叫做array2,最后判斷array1的每個(gè)元素是否都被包含在array2中。

還有一個(gè)問(wèn)題需要解決:當(dāng)前的Product的Categories屬性值只存儲(chǔ)了所有第三級(jí)分類編號(hào)拼接成的字符串,而前端輸入的搜索條件可能會(huì)包含一級(jí)分類或二級(jí)分類等,所以,我們需要把Product轉(zhuǎn)換一下,希望有一個(gè)類的某個(gè)屬性值能存儲(chǔ)由一級(jí)、二級(jí)、三級(jí)分類拼接而成的字符串。

    public class ProductWithThreeCate
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string AllCategoreis { get; set; }
    }

以上, AllCategoreis屬性值就用來(lái)存儲(chǔ)由一級(jí)、二級(jí)、三級(jí)分類拼接而成的字符串。

有一個(gè)方法獲取所有分類:

        static List<Category> GetCategories()
        {
            return new List<Category>()
            {
                new Category(){Id = 1, Name = "根", ParentId = -1},
                new Category(){Id = 2, Name = "一級(jí)分類1",ParentId = 1},
                new Category(){Id = 3, Name = "一級(jí)分類2", ParentId = 1},
                new Category(){Id = 4, Name = "二級(jí)分類11",ParentId = 2},
                new Category(){Id = 5, Name = "二級(jí)分類12",ParentId = 2},
                new Category(){Id = 6, Name = "二級(jí)分類21",ParentId = 3},
                new Category(){Id = 7, Name = "二級(jí)分類22",ParentId = 3},
                new Category(){Id = 8, Name = "三級(jí)分類111",ParentId = 4},
                new Category(){Id = 9, Name = "三級(jí)分類112",ParentId = 4},
                new Category(){Id = 10, Name = "三級(jí)分類121",ParentId = 5},
                new Category(){Id = 11, Name = "三級(jí)分類122",ParentId = 5},
                new Category(){Id = 12, Name = "三級(jí)分類211",ParentId = 6},
                new Category(){Id = 13, Name = "三級(jí)分類212",ParentId = 6},
                new Category(){Id = 14, Name = "三級(jí)分類221",ParentId = 7}
            };
        }

有一個(gè)方法獲取所有產(chǎn)品:

        static List<Product> GetProducts()
        {
            return new List<Product>()
            {
                new Product(){Id = 1, Name = "產(chǎn)品1",Categories = "10,12"},
                new Product(){Id = 2, Name = "產(chǎn)品2", Categories = "12,13"},
                new Product(){Id = 3, Name = "產(chǎn)品3",Categories = "10,11,12"},
                new Product(){Id = 4, Name = "產(chǎn)品4",Categories = "13,14"},
                new Product(){Id = 5, Name = "產(chǎn)品5",Categories = "11,13,14"}
            };
        }

接下來(lái)的方法是根據(jù)搜索條件(比如是"1,2")來(lái)查找滿足條件的ProductWithThreeCate集合,如下:

        /// <summary>
        /// 獲取滿足某些條件的集合
        /// </summary>
        /// <param name="query">以英文逗號(hào)隔開(kāi)的字符串,比如:2,5</param>
        /// <returns></returns>
        static List<ProductWithThreeCate> GetResultByQuery(string query)
        {
            //最終結(jié)果
            List<ProductWithThreeCate> result = new List<ProductWithThreeCate>();
            //臨時(shí)結(jié)果 此時(shí)ProductWithThreeCat的屬性AllCategoreis包含所有一級(jí)、二級(jí)、三級(jí)分類ID拼接成的字符串
            List<ProductWithThreeCate> tempResult = new List<ProductWithThreeCate>();
            //獲取所有的產(chǎn)品
            List<Product> allProducts = GetProducts();
            //遍歷這些產(chǎn)品
            foreach (var item in allProducts)
            {
                ProductWithThreeCate productWithThreeCate = new ProductWithThreeCate();
                productWithThreeCate.Id = item.Id;
                productWithThreeCate.Name = item.Name;
                //所有一級(jí)、二級(jí)、三級(jí)拼接成以英文逗號(hào)隔開(kāi)的字符串
                string temp = string.Empty;
                //當(dāng)前產(chǎn)品只包含三級(jí)拼接成的、也是以英文隔開(kāi)的字符串,split成數(shù)組
                string[] theThirdCates = item.Categories.Split(',');
                //遍歷這些三級(jí)數(shù)組
                foreach (string i in theThirdCates)
                {
                    //三級(jí)類別轉(zhuǎn)換成整型
                    int theThirdInt = int.Parse(i);
                    //獲取三級(jí)類別
                    Category theThirdCate = GetCategories().Where(c => c.Id == theThirdInt).FirstOrDefault();
                    //獲取二級(jí)類別
                    Category theSecondCate = GetCategories().Where(c => c.Id == theThirdCate.ParentId).FirstOrDefault();
                    //獲取一級(jí)類別
                    Category theFirstCate = GetCategories().Where(c => c.Id == theSecondCate.ParentId).FirstOrDefault();
                    temp += i + "," + theSecondCate.Id.ToString() + "," + theFirstCate.Id.ToString() + ",";
                }
                //去掉最后一個(gè)英文逗號(hào)
                temp = temp.Substring(0, temp.Length - 1);
                //轉(zhuǎn)換成集合,去除重復(fù)項(xiàng),比如不同的三級(jí)可能有相同的一級(jí)或二級(jí)父類
                IEnumerable<string> tempArray = temp.Split(',').AsEnumerable().Distinct();
                //所有一級(jí)、二級(jí)、三級(jí)拼接成以英文逗號(hào)隔開(kāi)的字符串,但已經(jīng)去除了重復(fù)的一級(jí)和二級(jí)
                string tempagain = string.Empty;
                //再次遍歷集合拼接成字符串
                foreach (var s in tempArray)
                {
                    tempagain += s + ",";
                }
                productWithThreeCate.AllCategoreis = tempagain.Substring(0, tempagain.Length - 1);
                tempResult.Add(productWithThreeCate);
            }
            //遍歷臨時(shí)結(jié)果
            foreach (var item in tempResult)
            {
                //把當(dāng)前包含一級(jí)、二級(jí)、三級(jí)的,以英文逗號(hào)隔開(kāi)的字符串split成數(shù)組
                string[] itemArray = item.AllCategoreis.Split(',');
                //把當(dāng)前查詢字符串split成數(shù)組
                string[] queryArray = query.Split(',');
                //如果queryArray的每一個(gè)元素都被包含在itemArray中,那就保存起來(lái)
                if (queryArray.All(x => itemArray.Contains(x)) == true)
                {
                    result.Add(item);
                }
            }
            return result;
        }

客戶端的調(diào)用如下:

            List<ProductWithThreeCate> result = GetResultByQuery("2,5");
            //遍歷最終的結(jié)果
            foreach (var item in result)
            {
                Console.WriteLine(item.Name+ "  " + item.AllCategoreis);
            }
            Console.ReadKey();

到此,相信大家對(duì)“如何使用ASP.NET MVC獲取多級(jí)類別組合下的產(chǎn)品”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前名稱:如何使用ASP.NET?MVC獲取多級(jí)類別組合下的產(chǎn)品
網(wǎng)站鏈接:http://aaarwkj.com/article24/jjheje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器響應(yīng)式網(wǎng)站、網(wǎng)站收錄動(dòng)態(tài)網(wǎng)站、外貿(mào)建站、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
欧美日韩欧美日韩一区二区| 日本高清中文精品在线不卡| 亚洲av毛片一区二区三区网| av黄色天堂在线观看| 美女口爆吞精一区二区| 亚洲午夜一区二区精品| 国产精品一区二区免费式| 青青草原在线视频观看| 中文字幕乱码高清欧美日韩| 伊人亚洲一区二区三区| 日韩欧美亚洲国产另类| 欧美日本一区二区四区| 国产精品一区二区毛卡片| 国产一级二级三级在线电影| 久久精品亚洲欧美麻豆| 黄色三级视频久久久| 亚洲黄色片在线播放| 欧美黄色一区在线观看| 免费观看在线视频午夜| 高清美女视频亚洲免费| 东京热男人的av天堂| 午夜视频在线观看日韩| 国产免费一区二区福利| 69人妻一区二区三区蜜桃| 成人日韩av免费在线观看| 国产麻豆91在线视频| 午夜视频在线观看91| 欧美日韩国产一下老妇| 日韩精品一区二区三区中文| 色在色在线播放亚洲中文| 午夜性生活视频免费看| 性知音国产精品粉色视频| 欧美偷拍一区二区三区| 日韩一区二区高清视频在线观看| 性生活真实视频免费看| 亚洲新大香蕉视频在线播放| 亚洲一二三区精品与老人| 一区二区高清中文字幕| 国产日韩欧美亚洲中文国| 日韩一二三区免费不卡视频| 999久久免费精品国产|