public static void MapRoute(this RouteCollection routes, RouteConfigurationSection section, bool cutOutUrlFirstSection) { if (section == null) { throw new ApplicationException("没有配置config文件中的routeConfig节点"); } // Manipulate the Ignore List if (section.Ignore != null) { foreach (IgnoreItem ignoreItem in section.Ignore) { RouteValueDictionary ignoreConstraints = new RouteValueDictionary(); if (ignoreItem.Constraints != null) { foreach (Constraint constraint in ignoreItem.Constraints) { ignoreConstraints.Add(constraint.Name, constraint.Value); } } MapIgnoreRoute(routes, ignoreItem.Url, ignoreConstraints); } } if (section.Areas != null) { foreach (AreaItem area in section.Areas) { MapByRoutingCollection(routes, cutOutUrlFirstSection, area.Name, area.Map, area.Namespaces); } } MapByRoutingCollection(routes, cutOutUrlFirstSection, string.Empty, section.Map, section.Namespaces); }
public static void RegisterRoutes(RouteCollection routes, bool cutOutUrlFirstSection = false) { ControllerBuilder.Current.SetControllerFactory(new CustomControllerFactory()); RouteConfigurationSection section = GetRouteConfiguration(); routes.MapRoute(section, cutOutUrlFirstSection); }
internal static RouteConfigurationSection GetRouteConfiguration() { if (s_Configuration == null) { lock (s_SyncObj) { if (s_Configuration == null) { s_Configuration = (RouteConfigurationSection)ConfigurationManager.GetSection("routeConfig"); } } } return(s_Configuration); }
private static RoutingItem FindRoutingItem(string routeName) { routeName = routeName.Trim().ToLower(); RouteConfigurationSection section = RouteConfig.GetRouteConfiguration(); RoutingItem curRouteItem = null; if (section.Areas != null && section.Areas.Count > 0) { foreach (AreaItem area in section.Areas) { if (area.Map == null || area.Map.Count <= 0) { continue; } foreach (RoutingItem routingItem in area.Map) { if (routingItem.Name.ToLower().Trim() == routeName) { curRouteItem = routingItem; break; } } if (curRouteItem != null) { break; } } } if (curRouteItem == null && section.Map != null && section.Map.Count > 0) { foreach (RoutingItem routingItem in section.Map) { if (routingItem.Name.ToLower().Trim() == routeName) { curRouteItem = routingItem; break; } } } return(curRouteItem); }