2015-11-28 16 views
0

我已经开始使用asp .net mvc,并且遇到了路由问题。我想在布局文件中有一个局部视图。我也有地区。我的路由如下:在控制器的布局中添加部分视图,也使用区域

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。

有没有办法做到这一点?

回答

0

呼叫:

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

是完全一样调用这个RenderAction:如果要确保一个呼叫到非区域控制器需要

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

所以:

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

我不能分配一个区域为空,如果我将它分配给空字符串我得到“路由表matc中没有路由他提供的价值。“错误 – user2327579

相关问题