我很困惑我可能会说尽管在网站上找到了所有其他帖子。
我的解决方案有两个区域 Front 和 Back,我不想使用默认提供的默认根控制器和视图。
我的FrontAreaRegistration.cs就像:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Front",
"Front/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
, new[] { "Show.Areas.Front.Controllers" }
);
}
我的BackAreaRegistration.cs就像:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Back_default",
"Back/{controller}/{action}/{id}",
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional }
, new[] { "Show.Areas.Back.Controllers" }
);
}
和Global.asax一样:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
得到以下异常:
找到了与名为“Home”的控制器匹配的多种类型。如果服务此请求的路由 ('{controller}/{action}/{id}') 未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用“namespaces”参数的“MapRoute”方法的重载来注册此路由。
'Home' 的请求找到了以下匹配的控制器: Show.Areas.Front.Controllers.HomeController Show.Areas.Back.Controllers.HomeController
问题是我无法从 Front 区域到达 Home 控制器。即使将正确的命名空间添加到 context.MapRoute 方法重载...
任何帮助将不胜感激。