如何将执行查询的结果放入ViewData并传递给视图

本文关键字:ViewData 视图 执行 查询 结果 | 更新日期: 2023-09-27 18:13:54

我仍然是ASP.net MVC的新手,在查询时显示数据有问题。

这是我运行查询的控制器:

public ActionResult Create()
{
    var Status = from s in _db.ReservationsStatus where s.defaultStatus == true select  s.Id;
    ViewData["Status"] = Status;
    return View();
}

然后我从视图中的ViewData读取。但是,输出是:

选择[Extent1]。[Id] AS [Id] FROM [dbo]。(ReservationStatus)作为[Extent1] WHERE 1 = [Extent1].[defaultStatus];

我想要的输出是ID本身(执行查询的结果)

如何将执行查询的结果放入ViewData并传递给视图

您需要执行查询。

public ActionResult Create()
{
    var Status = (from s in _db.ReservationsStatus where s.defaultStatus == true select  s.Id).First();
    ViewData["Status"] = Status;
    return View();
}

LINQ查询以两种模式执行-延迟和立即。在您提到的情况下,它被延迟执行,因此查询被分配给var,直到它被执行。这将在开始遍历结果时发生。您可以通过调用First或count之类的函数来立即执行查询,这将强制执行查询并返回一个值。