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

如何在ViewData列表绑定的数据表中排除count为0的空数据行

实现方法

你只需要在遍历每个列表前增加非空、数据量校验,只有当对应列表存在且包含数据时,才执行循环渲染逻辑,空列表时直接跳过对应代码块,就不会生成tbody里对应的行,同时还能避免ViewData取值时的空引用报错。

修改后的视图代码如下:

<tbody>
    @{
        // 安全获取第一个列表做校验
        var sample1List = ViewData["Sample1"] as List<Sample1>;
        if (sample1List != null && sample1List.Count > 0)
        {
            foreach(var item in sample1List)
            {
              <tr>
                <td>@item.A</td>
                <td>@item.B</td>      
              </tr>
            }
        }
    }

    @{
        // 安全获取第二个列表做校验
        var sample2List = ViewData["Sample2"] as List<Sample2>;
        if (sample2List != null && sample2List.Count > 0)
        {
            foreach(var item in sample2List)
            {
                <tr>
                  <td>@item.C</td>
                  <td>@item.D</td>
                </tr>
            }
        }
    }
</tbody>

关键说明

  • 用as关键字做类型转换,即使ViewData中不存在对应键、或者存储的对象类型和目标泛型列表不匹配,也会返回null而不是直接抛出运行时异常
  • 校验逻辑同时判断列表非空、Count > 0两个条件,只要列表无数据就不会进入循环块,完全不会输出对应<tr>标签,自然实现对应行的隐藏/排除
  • 如果你每个列表前还有对应的分组标题行、说明行,把这类行的代码也放到同一个if判断块中,就可以实现列表为空时连同关联行一起隐藏

内容的提问来源于stack exchange,提问作者Veck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:15:33