所以我现在(我相信这是默认方式)使用_ViewStart.cshtml就是这样做:
Layout = "~/Views/_SomeSideMenu.cshtml";
现在我的侧面菜单有点复杂,所以它需要一个控制器。但是我无法弄清楚如何为ViewStart调用控制器动作并让它为它返回PartialPage。
我目前的解决方法是在_SomeSideMenu.cshtml文件中使用@ Html.Action()并使用我需要的东西填充TempData。 通常我想将这些数据放在ViewBag或Model中,但由于Html.Action没有返回_SomeSideMenu.cshtml,因此这些数据不可用。
如何调用控制器操作来返回_ViewStart页面中的PartialPage?
答案 0 :(得分:0)
实际上,您无法在ViewStart
文件中执行此操作。 ViewStart
是一个可以存储与所有视图相关的常用功能的文件。这些页面也可以嵌套,因此如果您有多个控制器,则每个控制器的视图都可以有自己的ViewStart
页面。
您应该将侧边菜单添加到布局页面中。您可以添加一些条件以将此输出放入布局页面。对于样本,jere,我们有一个动作过滤器,它将一个键添加到ViewBag
中,我们使用此键来设置一个侧面菜单的状态(状态如打开或关闭以及向左或向右的位置)。
您还可以在视图中更改您的默认布局页面,只需执行ViewStart页面所做的操作,即可打开布局属性。
Layout = "~/Views/Shared/CustomLayoutPage.cshtml";