ASP MVC中的全局数据4

时间:2013-06-10 10:31:31

标签: asp.net-mvc-4

我正在为我们的扑克联赛写一个网站。在_Layout页面中,我想包含一些数据库信息,例如下一个游戏日期以及剩余的赛季数量。我认为_Layout是最好的页面,因为我想在所有页面上提供这些信息。

如何在那里获得此实体框架数据?我认为控制器不是这样的,因为_Layout只是使用自己的控制器的其他视图的模板。

真的很感激任何信息或资源。

提前致谢,

保罗。

3 个答案:

答案 0 :(得分:1)

您应该创建一个基本控制器,所有控制器都从该控制器继承。 在那里,您可以覆盖方法OnActionExecuting()并从数据库,缓存或轮廓中加载该数据并将其传递给Viewbag:

public class ControllerBase {
  protected override void OnActionExecuting(ActionExecutingContext ctx) {
      Viewbag.LayoutPageData = ...;
  }
}

或者您可以为所有Viewmodel使用基类,并将模型中的数据传递给视图。

您的布局页面也是一个视图,因此您可以使用viewmodel类强力键入它。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以在部分页面示例中显示您的数据库信息" _NextGameDate.cshtml"

然后你必须将它包含在_Layout.cshtml页面中:

 @Html.Partial("_NextGameDate.cshtml");