public static void RegisterRoutes(RouteCollection routes) { routes.LowercaseUrls = true; routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.Add(new LowercaseRoute( url: "Assets/{action}/{id}", defaults: new RouteValueDictionary(new { controller = "Assets", action = "Index", id = UrlParameter.Optional }), routeHandler: new MvcRouteHandler())); routes.Add(new LowercaseRoute( url: "File/{id}/{type}/{hash}", defaults: new RouteValueDictionary(new { controller = "File", action = "Index" }), routeHandler:new MvcRouteHandler())); routes.Add(new Route( url: "r/e", defaults: new RouteValueDictionary(new { controller = "Redirect", action = "External" }), routeHandler:new MvcRouteHandler())); routes.Add(new Route( url: "r/i", defaults: new RouteValueDictionary(new { controller = "Redirect", action = "Internal" }), routeHandler:new MvcRouteHandler())); var valuesConstraint = new ExpectedValuesConstraint(LanguageTypeHelper.Instance.GetIsoNames()); routes.Add(new LowercaseRoute( url: "{language}/{controller}/{action}/{id}", defaults: new RouteValueDictionary(new { controller = "Home", action = "Index", id = UrlParameter.Optional }), routeHandler: new MvcRouteHandler(), constraints: new RouteValueDictionary(new { language = valuesConstraint }))); routes.MapRoute( name: "NoLanguage", url: "{any1}/{any2}/{any3}/{any4}", defaults: new { controller = "home", action = "detectlanguage", any1 = UrlParameter.Optional, any2 = UrlParameter.Optional, any3 = UrlParameter.Optional, any4 = UrlParameter.Optional, } ); }
public override void RegisterArea(AreaRegistrationContext context) { var valuesConstraint = new ExpectedValuesConstraint(LanguageTypeHelper.Instance.GetIsoNames()); context.MapRoute( url: "{language}/Moderate/{controller}/{action}/{id}", defaults: new RouteValueDictionary(new { controller = "Moderate", action = "Index", id = UrlParameter.Optional }), constraints: new RouteValueDictionary(new { language = valuesConstraint }), name: "Moderate_default", namespaces: new [] { "Project_B.Areas.Moderate.Controllers" }); }