You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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分组展示数据

需要同步修改视图的模型声明和循环逻辑:

  1. 先修改视图顶部的模型声明:
@model IEnumerable<IGrouping<int, SmartBookingPro.Models.MinuteOfMeeting>>
  1. 调整视图的遍历逻辑,先遍历分组,再遍历每个分组下的会议记录:
@{
    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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:36:04