Asp.net mvc 从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 {
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我想在我的主项目布局页面中呈现动作…如果我指定了区域名称。它带来了另一个逻辑错误…因为呈现的操作(在布局中)不应该有父页面。。。