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

如何在视图中显示控制器Lambda变量中匹配ID的startdato字段

解决视图中显示唯一startdato标题的Razor方案

我来帮你搞定这个问题~你的控制器返回的是List<kursus_kursist>集合,每个项都关联了kurser实体。要在视图里把匹配当前id的startdato作为唯一标题显示,关键是要处理集合为空或者关联对象为null的情况,避免空引用报错。

具体实现思路和代码

首先,我们得先从模型集合里拿到第一个有效的、关联kurser不为null的项,然后安全地取出日期并格式化。直接上Razor代码:

@{
    // 先筛选出第一个关联kurser不为null的项,避免后续空引用
    var firstValidEntry = Model.FirstOrDefault(entry => entry.kurser != null);
}

<!-- 渲染标题,同时处理无数据的情况 -->
@if (firstValidEntry != null)
{
    <h1>@firstValidEntry.kurser.startdato.ToString("yyyy-MM-dd")</h1>
}
else
{
    <h1>暂无相关数据</h1> <!-- 这里的提示文本你可以根据需求自定义 -->
}

<!-- 下面是你原本要展示的记录列表 -->
@foreach (var entry in Model)
{
    <!-- 这里写每条记录的渲染逻辑 -->
}

简化版(如果能保证关联对象不为null)

因为你的控制器已经用了Include(k => k.kurser)来预加载关联数据,理论上每个kursus_kursist的kurser都不会为null。这种情况下可以简化代码,但保留空值检查依然是好习惯:

@{
    var firstEntry = Model.FirstOrDefault();
}

@if (firstEntry != null && firstEntry.kurser != null)
{
    <h1>@firstEntry.kurser.startdato.ToString("yyyy-MM-dd")</h1>
}
else
{
    <h1>暂无相关数据</h1>
}

补充说明

控制器里的Where(x => x.kursus_id == id)已经保证了返回的所有项都是匹配当前id的,而kursus_id是kurser的主键,所以这些项的kurser.startdato应该完全一致,取第一个项的日期作为标题只会显示一次,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:46:12