从mvc的布局页面中的区域渲染动作

时间:2017-01-23 15:31:26

标签: asp.net-mvc asp.net-mvc-5 asp.net-mvc-areas

我希望通过此代码在我的主要MVC项目的布局页面中从我的区域(命名菜单)中渲染Index()动作

并在此布局线上获得了错误

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

  

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

这是我的 AreaRegistration 代码,仅供参考:

        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" }
        );

    }

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

编辑:我问题的主要原因是这个...我的区域的索引动作无法返回他的视图...我在Index动作中设置了一个断点,并且内部有一个断点索引视图...并且程序正在第一个到达并停止,但在第二个程序中永远不会停止! ... 所以 主要问题是这个...我所在区域的索引操作不会返回索引视图..

2 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:-1)

我解决了。实际上,只有使用RenderPartial直接路径的解决方案:

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