ASP.NET MVC如何在HTML表格中展示按会议ID分组的数据
问题修复方案
错误根因
你通过GroupBy()方法查询得到的结果是List<IGrouping<int, MinuteOfMeeting>>类型,每个元素是对应同一个MeetID的所有会议记录集合,但你的视图顶部声明的接收模型是IEnumerable<MinuteOfMeeting>,二者类型不匹配因此抛出异常。
修复方案
根据你的实际需求选择对应方案即可:
方案1:不需要按会议ID分组,只需返回所有会议记录
直接修改控制器的查询代码,去掉GroupBy语句即可,原有视图代码无需改动:
var res = db.MinuteofMeet.ToList(); return View(res);
方案2:确实需要按会议ID分组展示数据
需要同步修改视图的模型声明和循环逻辑:
- 先修改视图顶部的模型声明:
@model IEnumerable<IGrouping<int, SmartBookingPro.Models.MinuteOfMeeting>>
- 调整视图的遍历逻辑,先遍历分组,再遍历每个分组下的会议记录:
@{ int i = 1; // 遍历每个MeetID对应的分组 foreach (var meetGroup in Model) { // 可按需添加分组标题行,展示当前分组的会议ID <tr> <td colspan="8">会议ID:@meetGroup.Key</td> </tr> // 遍历当前分组下的所有会议记录 foreach(var item in meetGroup) { <tr> <td hidden> @Html.DisplayFor(modelItem => item.MeetID) </td> <td> @Convert.ToString(string.Format("{0:dd-MM-yyyy}", item.CDate)) </td> <td> @Html.DisplayFor(modelItem => item.SubjectDetail) </td> <td> @Convert.ToString(string.Format("{0:dd-MM-yyyy}", item.Meetdate)) </td> <td> Demo </td> <td> @Html.DisplayFor(modelItem => item.responsible) </td> <td hidden>@Html.DisplayFor(modelItem => item.action_type)</td> <td> <img data-id="@item.Comment" data-toggle="modal" data-target="#commentsmodal" class="datimage" src="~/MatAssets/images/plus.png"> </td> </tr> } } }
内容的提问来源于stack exchange,提问作者Ashwin
相关产品推荐
相关产品推荐

