C# 如何在视图中显示单个记录(当存储在控制器中使用lambda的变量中时)
在我的控制器中,我有一个var,它包含来自数据库的记录。我的问题是,我需要在我的视图中显示单个记录,但到目前为止没有任何效果 我试过使用C# 如何在视图中显示单个记录(当存储在控制器中使用lambda的变量中时),c#,razor,asp.net-mvc-5,C#,Razor,Asp.net Mvc 5,在我的控制器中,我有一个var,它包含来自数据库的记录。我的问题是,我需要在我的视图中显示单个记录,但到目前为止没有任何效果 我试过使用 @Model.FirstOrDefault() 但有时会返回空值 这是来自我的控制器: // GET: hold/protokol public ActionResult Protokol(int? id) { var kursus_kursist = db.kursus_kursist.Where(x => x.kursus_id == id).In
@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(主键)。我想要的是能够显示startdato列的值,其中kursus_id与我视图中public ActionResult Protokol(int?id)中的id相匹配*编辑:结果应该是带有日期的标题,所以我只需要显示这个值一次。我只想得到这样的输出:
"2019-11-04"
*我猜我可以在视图中使用razor访问它,但是如何访问呢
我(显然)很难理解这一点,所以我发现很难用语言表达我的问题。如果我需要更新/编辑我的问题,请告诉我。
谢谢使用现有控制器,您可以参考模型集合,然后在razor中使用foreach,就像这样:
@model List<kursis_kursist>
@foreach (kursis_kursist item in Model)
{
//Access individual items here
}
@型号列表
@foreach(模型中的kursis_kursist项)
{
//在此处访问单个项目
}
编辑:
可以创建包含标头和集合的DateTime值的ViewModel,如下所示:
public class KursistViewModel
{
public DateTime HeaderDate {get; set;}
public List<kursis_kursist> kursisList {get; set;}
}
公共类视图模型
{
公共日期时间标头日期{get;set;}
公共列表列表{get;set;}
}
然后,您可以将其传递到视图,并使用Razor直接访问HeaderDate,并通过foreach访问列表。但这不会打印出多个项目(具有相同的值)?我需要制作一个包含日期的标题,所以我只需要打印一次日期。请查看我的更新答案。希望这就是您在共享实体类结构和期望之后所做的output@shyju,通过实体类结构,您是指controller.cs文件内容吗?
@Model.FirstOrDefault()
仅返回第一条记录。使用for
或foreach
循环迭代模型内容。