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

时间:2013-05-16 03:17:51

标签: c# asp.net-mvc asp.net-mvc-4

我仍然是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();
}

然后我在View中读取了ViewData。但是,输出是:

  

SELECT [Extent1]。[Id] AS [Id] FROM [dbo]。[ReservationStatus] AS   [Extent1] WHERE 1 = [Extent1]。[defaultStatus];

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

2 个答案:

答案 0 :(得分:3)

您需要执行查询。

public ActionResult Create()
{
    var Status = (from s in _db.ReservationsStatus where s.defaultStatus == true select  s.Id).First();

    ViewData["Status"] = Status;
    return View();
}

答案 1 :(得分:1)

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