_控制器操作的Viewstart

本文关键字:Viewstart 操作 控制器 | 更新日期: 2023-09-27 18:30:03

因此,我目前(我相信这是默认的)使用_ViewStart.cshtml的方式是: Layout = "~/Views/_SomeSideMenu.cshtml";

现在我的侧菜单有点复杂,所以它需要一个控制器。但我不知道如何为ViewStart调用控制器操作,并让它返回PartialPage

我目前的解决方法包括在_SomeSideMenu.chtml文件中使用@Html.Action(),并用我需要的东西填充TempData。通常我想把这些数据放在ViewBag或Model中,但这些数据不可用,因为Html.Action不会返回_SomeSideMenu.chtml.

如何调用控制器操作以返回在_ViewStart页面中找到的PartialPage?

_控制器操作的Viewstart

实际上,不能在ViewStart文件中执行此操作。ViewStart是一个可以存储与所有视图相关的公共功能的文件。这些页面也可以嵌套,因此如果有多个控制器,则每个控制器的视图都可以有自己的ViewStart页面。

您应该将侧菜单添加到布局页面中。您可以添加一些条件以将此输出放入布局页面。对于示例jere,我们有一个动作过滤器,它将一个键添加到ViewBag中,并使用该键为侧菜单提供一个状态(如打开或关闭以及向左或向右定位)。

您也可以像ViewStart页面那样更改视图中的默认布局页面,更改layout属性。

Layout = "~/Views/Shared/CustomLayoutPage.cshtml";