使用控制器和区域在布局中添加局部视图

本文关键字:添加局 视图 布局 控制器 区域 | 更新日期: 2023-09-27 18:24:58

我已经开始使用asp.netmvc,在路由方面遇到了一些问题。我想在布局文件中有一个局部视图。我也有领域。我的路线如下:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { area = "Home", controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
    null
).DataTokens.Add("area", "Home");
// home and error page
routes.MapRoute("", "error", new { area = "", controller = "Home", action = "Error" });
routes.MapRoute("home_default", "", new { area = "Home", controller = "Home", action = "Index" });

我正在尝试使用

@{ Html.RenderAction("Index", "_Menu"); } 

在布局文件中。我已经在区域外的控制器文件夹中定义了一个_Menu控制器。我实际上得到了

未找到路径"/project/"的控制器,或者该控制器未实现IController。

有办法做到这一点吗?

使用控制器和区域在布局中添加局部视图

调用:

Html.RenderAction("Index", "_Menu");

与调用此RenderAction:完全相同

Html.RenderAction("Index", "_Menu", new { area = "<currentArea>" });

因此,如果你想确保呼叫是针对非区域控制器的,你需要:

Html.RenderAction("Index", "_Menu", new { area = ""});