我正在为我们的扑克联赛写一个网站。在_Layout页面中,我想包含一些数据库信息,例如下一个游戏日期以及剩余的赛季数量。我认为_Layout是最好的页面,因为我想在所有页面上提供这些信息。
如何在那里获得此实体框架数据?我认为控制器不是这样的,因为_Layout只是使用自己的控制器的其他视图的模板。
真的很感激任何信息或资源。
提前致谢,
保罗。
答案 0 :(得分:1)
您应该创建一个基本控制器,所有控制器都从该控制器继承。
在那里,您可以覆盖方法OnActionExecuting()
并从数据库,缓存或轮廓中加载该数据并将其传递给Viewbag:
public class ControllerBase {
protected override void OnActionExecuting(ActionExecutingContext ctx) {
Viewbag.LayoutPageData = ...;
}
}
或者您可以为所有Viewmodel使用基类,并将模型中的数据传递给视图。
您的布局页面也是一个视图,因此您可以使用viewmodel类强力键入它。
答案 1 :(得分:0)
您也可以像本示例中那样使用Html.Action
答案 2 :(得分:0)
您可以在部分页面示例中显示您的数据库信息" _NextGameDate.cshtml"
然后你必须将它包含在_Layout.cshtml页面中:
@Html.Partial("_NextGameDate.cshtml");