我正在为我们的扑克联赛写一个网站。在 _Layout 页面中,我想包含一些数据库信息,例如下一场比赛的日期以及本赛季还剩多少场比赛。我认为 _Layout 是最好的页面,因为我希望在所有页面上都有这些信息。
我怎样才能在那里获得这个实体框架数据?我认为控制器不是方式,因为 _Layout 只是其他使用自己的控制器的视图的模板。
任何信息或资源将不胜感激。
提前致谢,
保罗。
我正在为我们的扑克联赛写一个网站。在 _Layout 页面中,我想包含一些数据库信息,例如下一场比赛的日期以及本赛季还剩多少场比赛。我认为 _Layout 是最好的页面,因为我希望在所有页面上都有这些信息。
我怎样才能在那里获得这个实体框架数据?我认为控制器不是方式,因为 _Layout 只是其他使用自己的控制器的视图的模板。
任何信息或资源将不胜感激。
提前致谢,
保罗。
您应该创建一个基本控制器,所有控制器都从该控制器继承。在那里,您可以覆盖该方法OnActionExecuting()
并从数据库、缓存或任何地方加载该数据并将其传递给 Viewbag:
public class ControllerBase {
protected override void OnActionExecuting(ActionExecutingContext ctx) {
Viewbag.LayoutPageData = ...;
}
}
或者,您可以为所有 Viewmodel 使用基类,并将数据与模型一起传递给视图。
您的布局页面也是一个视图,因此您可以使用视图模型类对其进行强类型输入。
您可以在部分页面示例“_NextGameDate.cshtml”中显示您的数据库信息
那么你必须通过以下方式将它包含在 _Layout.cshtml 页面中:
@Html.Partial("_NextGameDate.cshtml");
您还可以像在此示例中一样使用 Html.Action