您可以使用LINQ中的GroupBy方法来执行此操作,请参阅下文.
假设您的GopreadyOnlineTest类是这样的:
public class GopreadyOnlineTest { public string CategoryId { get; set; } public string CategoryName { get; set; } public string SubCategoryId { get; set; } public string SubCategoryName { get; set; } public string Question { get; set; } public string OptionA { get; set; } public string OptionB { get; set; } public string OptionC { get; set; } public string OptionD { get; set; } public string QuestionDescription { get; set; } }
并且您的List
变量包含一些类似的数据:
this.search = new List{ new GopreadyOnlineTest { CategoryName = "General Knowledge", SubCategoryName = "Basic General Knowledge" }, new GopreadyOnlineTest { CategoryName = "General Knowledge", SubCategoryName = "World Geography" }, new GopreadyOnlineTest { CategoryName = "General Knowledge", SubCategoryName = "Inventions" }, new GopreadyOnlineTest { CategoryName = "General Knowledge", SubCategoryName = "Honours and Awards" }, new GopreadyOnlineTest { CategoryName = "Maths", SubCategoryName = "Time & Speed" }, new GopreadyOnlineTest { CategoryName = "Maths", SubCategoryName = "Algebra" }, new GopreadyOnlineTest { CategoryName = "Maths", SubCategoryName = "Accounts" } };
让我们创建一个ViewModel来保存我们转换的数据
public class SampleViewModel { public string Category { get; set; } public ListSubCategories { get; set; } }
然后你的行动应该是这样的:
[HttpGet] public JsonResult GetOnlineTestTitle() { var result = search.GroupBy(x => x.CategoryName) .Select(c => new SampleViewModel { Category = c.Key, SubCategories = c.Select(sc => sc.SubCategoryName).Distinct().ToList() }); return Json(result, JsonRequestBehavior.AllowGet); }
在前端,你的javascript应该是这样的:
function GetOnlineTestTitle() { $.ajax({ type: "GET", url: 'GetOnlineTestTitle', contentType: "application/json; charset=utf-8", dataType: "json", async: true, cache: false, success: function (msg) { $("#examList").html(""); var divs = msg.map(function (item) { var $div = $(""); var $ul = $(""); var $h3 = $("
").text(item.Category); item.SubCategories.forEach(function (itemSub) { $ul.append($("
- ").text(itemSub)); }); $div.append($h3); $div.append($ul); return $div; }); $('#examList').append(divs); }, error: function (msg) { alert(JSON.stringify(msg)); } }); }
你可以在这里看到它:https://dotnetfiddle.net/PdaW67
由于上面的代码比较多,我在下面添加了几乎真实的代码:
public ActionResult getOnlineTestTitle() { var connectionString = WebConfigurationManager.ConnectionStrings["liveData"].ConnectionString; Listsearch = Session["OnlineTest"] as List ?? GopreadyOnlineTest.Search(connectionString).ToList(); Session["OnlineTest"] = search; var result = search.GroupBy(x => x.CategoryName) .Select(c => new SampleViewModel { Category = c.Key, SubCategories = c.Select(sc => sc.SubCategoryName).Distinct().ToList() }); return Json(result, JsonRequestBehavior.AllowGet); } 推荐阅读
如何解决《如何确保我的Android应用不会同时访问文件?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何告诉PIT不要改变代码的某些特定部分?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《MPAndroidChart图表填充》经验,为你挑选了1个好方法。 ... [详细] 如何解决《数据库文本在PHPwhile循环中打印两次》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何覆盖Play的默认Ebean服务器配置?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《使phpunit捕获php7TypeError》经验,为你挑选了2个好方法。 ... [详细] 如何解决《如何在whatsapp中对图像进行子采样/调整大小》经验,为你挑选了1个好方法。 ... [详细] 如何解决《MAX函数与GROUPBY子句一起使用》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何在指令中的节点中添加rst格式?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《使用核心javascript时在ajax调用中设置超时》经验,为你挑选了0个好方法。 ... [详细] 如何解决《实体框架6在代码中设置连接字符串》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Spring在运行时选择bean实现》经验,为你挑选了3个好方法。 ... [详细] 如何解决《Laravel5Auth-如何在密码重置页面发送电子邮件后输出状态消息》经验,为你挑选了1个好方法。 ... [详细] 如何解决《连接被拒绝-使用DigitalOcean连接(2)"localhost"端口9200》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何在linqwhere子句中将int与字符串进行比较》经验,为你挑选了1个好方法。 ... [详细] 如何解决《setIntervalwithInfinity》经验,为你挑选了1个好方法。 ... [详细] 如何解决《使用ES6语法通过onclick事件反应传递参数》经验,为你挑选了5个好方法。 ... [详细] 如何解决《无法访问Kubernetes端点》经验,为你挑选了0个好方法。 ... [详细] 吐了个 "CAO" !Tags | 热门标签RankList | 热门文章
- 1停止固定背景图像滚动到一定高度
- 2尝试应用AttributeConverter时出错
- 3是否在创建其继承类的新对象时创建了基类的对象?
- 4在我的项目中构建和重用android开源Dialer源代码
- 5如何在python中查询AWS DynamoDB?
- 6sha1不能使用密码加密
- 7从python脚本返回值到shell脚本
- 8android mediaprojection截图包含黑框
- 9如何异步执行几次函数并得到第一个结果
- 10运行h2o.ensemble时出错
- 11md-select检查md-options中重复选项的标准是什么
- 12C#等待所有线程完成执行
- 13在Microsoft Azure Web App中部署WAR FILE
- 14如何合并同一列中的单元格,应用rowspan?
- 15Java - 转换为接口,然后找出转换类型是什么
- 16安装sqlite3(1.3.11)时发生错误,Bundler无法继续
- 17JSON错误:期待......得到'未定义'
- 18'pdfseparate':将输出文件名格式设置为带有前导零的页码
- 19如何从golang中的结构数组中检索元素数组?
- 20从嵌套数组中获取值
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有