首页 > 解决方案 > 如何在视图中显示单个记录(当存储在控制器中使用 lambda 的变量中时)

问题描述

在我的控制器中,我有一个包含数据库记录的 var。我的问题是,我需要在我的视图中显示单个记录,但到目前为止没有任何效果。

我试过使用

@Model.FirstOrDefault()

但有时会返回一个空值。

这是来自我的控制器:

// GET: hold/protokol
public ActionResult Protokol(int? id)
{
var kursus_kursist = db.kursus_kursist.Where(x => x.kursus_id == id).Include(k => k.kurser).Include(k => k.kursister);

return View(kursus_kursist.ToList());
}

在 k.kurser 中有一个名为 startdato 的列,其中包含日期和 kursus_id(主键)。我想要的是能够在我的视图中显示 kursus_id 与 public ActionResult Protokol(int?id) 中的 id 匹配的 startdato 列的值。*edit:结果应该是带有日期的标题,所以我只需要显示这个值一次。我真的只是想要这样的输出:“2019-11-04” * 我猜我可以在视图中使用剃刀以某种方式访问​​它,但是如何?

我(显然)很难理解这一点,所以我发现很难把我的问题用语言表达出来。如果我需要更新/编辑我的问题,请告诉我。谢谢

标签: c#razorasp.net-mvc-5

解决方案


使用现有的控制器,您可以参考模型集合,然后在 razor 中使用 foreach,如下所示:

   @model List<kursis_kursist>


    @foreach (kursis_kursist item in Model)
    {
     //Access individual items here
    }

编辑:

您可以创建一个包含标头和集合的 DateTime 值的 ViewModel,如下所示:

public class KursistViewModel
{
 public DateTime HeaderDate {get; set;}
 public List<kursis_kursist> kursisList {get; set;}
}

然后,您可以将其传递给视图并使用 Razor 直接访问 HeaderDate 并通过 foreach 访问列表。


推荐阅读