Asp.net mvc 4 ASP MVC 4中的全局数据

Asp.net mvc 4 ASP MVC 4中的全局数据,asp.net-mvc-4,Asp.net Mvc 4,我正在为我们的扑克联盟写一个网站。在_布局页面中,我想包括一些数据库信息,如下一场比赛日期和本赛季剩余的比赛数。我认为_布局是最好的页面,因为我希望所有页面上都有这些信息 如何在那里获取该实体框架数据?我认为控制器不是这样,因为_Layout只是使用自己控制器的其他视图的模板 任何信息或资源都将不胜感激 提前感谢, Paul。您应该创建一个基本控制器,所有控制器都从该控制器继承。 在那里,您可以覆盖方法OnActionExecuting(),并从数据库、缓存或任何地方加载该数据,并将其传递到Vi

我正在为我们的扑克联盟写一个网站。在_布局页面中,我想包括一些数据库信息,如下一场比赛日期和本赛季剩余的比赛数。我认为_布局是最好的页面,因为我希望所有页面上都有这些信息

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

任何信息或资源都将不胜感激

提前感谢,


Paul。

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

public class ControllerBase {
  protected override void OnActionExecuting(ActionExecutingContext ctx) {
      Viewbag.LayoutPageData = ...;
  }
}
或者,您可以对所有Viewmodels使用基类,并将模型中的数据传递给视图


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

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

public class ControllerBase {
  protected override void OnActionExecuting(ActionExecutingContext ctx) {
      Viewbag.LayoutPageData = ...;
  }
}
或者,您可以对所有Viewmodels使用基类,并将模型中的数据传递给视图


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

您也可以使用Html.Action,如本示例中所示


您也可以像本示例中那样使用Html.Action


您可以在部分页面中显示数据库信息,例如“\u NextGameDate.cshtml”

然后,您必须通过以下方式将其包含在_Layout.cshtml页面中:

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

您可以在部分页面中显示数据库信息,例如“\u NextGameDate.cshtml”

然后,您必须通过以下方式将其包含在_Layout.cshtml页面中:

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

可以渲染局部视图。可以渲染局部视图。