1
У меня есть две области Admin и SecurityGuard. Маршрутизация показана ниже. Отображает ошибку: System.ArgumentException: маршрут с именем «Admin_default» уже находится в семейном маршруте. Имена должны быть уникальными маршрутами. Имя параметра: имяRegisterRoutes в ASP.NET MVC 4
RouteConfig:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Main", action = "Index", id = UrlParameter.Optional }
);
AreaRegistration.RegisterAllAreas();
}
Global.asax:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
AdminAreaRegistration:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Slider|Product" },
namespaces: new[] { "CaterWebsite.Areas.Admin.Controllers" }
);
}
SecurityGuardAreaRegistration:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute("SearchMembership", "SecurityGuard/Membership/index/{searchterm}/{filterby}",
new { controller = "Membership", action = "Index", searchterm = UrlParameter.Optional, filterby = "all" }
);
context.MapRoute("Membership", "SecurityGuard/Membership/{action}/{userName}",
new { controller = "Membership", userName = UrlParameter.Optional }
);
context.MapRoute(
"SecurityGuard_default",
"SecurityGuard/{controller}/{action}/{id}",
new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
}