Asp.net mvc 从mvc布局页面中的区域呈现操作

Asp.net mvc 从mvc布局页面中的区域呈现操作,asp.net-mvc,asp.net-mvc-5,asp.net-mvc-areas,Asp.net Mvc,Asp.net Mvc 5,Asp.net Mvc Areas,我想用这段代码在我的主MVC项目的布局页面中的我的区域(命名菜单)之外呈现Index()操作 这一行的布局有错误 @{Html.RenderAction(“索引”,“菜单”,新建{area=”“});} 执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子请求时出错 这是我的区域注册代码,仅供通知: public override string AreaName {

我想用这段代码在我的主MVC项目的布局页面中的我的区域(命名菜单)之外呈现
Index()
操作

这一行的布局有错误

@{Html.RenderAction(“索引”,“菜单”,新建{area=”“});}

执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子请求时出错

这是我的区域注册代码,仅供通知:

        public override string AreaName
    {
        get
        {
            return "Menu";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Menu_default",
            "Menu/{controller}/{action}/{id}",
            new { controller = "Menu", action = "Index", id = UrlParameter.Optional },
            new string[] { "Menu.Controllers" }
        );

    }
如您所见,我的控制器名称为菜单

编辑:我的问题的主要原因是……我所在区域的索引操作无法返回他的视图……我在索引操作中设置了一个断点,在索引视图中设置了一个断点。。。程序在第一个上到达并停止,但在第二个上从不停止。。。 所以 主要问题是…我所在区域的索引操作不返回索引视图。

试试这个

  @Html.Action("Index", "Menu")

我解决它。实际上,唯一的解决方案是使用带有直接路径的
RenderPartial

 @{ Html.RenderPartial("~/Areas/Menu/Views/Menu/Index.cshtml");}

菜单区域中可能存在您的副本,并且您没有指定Html中的任何区域。RenderAction:new{area=“Menu”})@LaurentLequenne我想在我的主项目布局页面中呈现动作…如果我指定了区域名称。它带来了另一个逻辑错误…因为呈现的操作(在布局中)不应该有父页面。。。