public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults, object constraints, string[] namespaces) { if (routes == null) { throw new ArgumentNullException("routes"); } if (url == null) { throw new ArgumentNullException("url"); } LowerCaseUrlRoute route = new LowerCaseUrlRoute(url, new RouteHandler()); route.Defaults = new RouteValueDictionary(defaults); route.Constraints = new RouteValueDictionary(constraints); route.DataTokens = new RouteValueDictionary(); if (namespaces != null && namespaces.Length > 0) { route.DataTokens["Namespaces"] = namespaces; } routes.Add(name, route); /* //这里的RouteHandler就是一个重要的切入点 Route route = new Route(url, new RouteHandler()) { Defaults = new RouteValueDictionary(defaults), Constraints = new RouteValueDictionary(constraints), DataTokens = new RouteValueDictionary() }; //而这里的DataTokens仅仅只是作为附加的参数 //作为后面搜索控制器时的一个条件 if (namespaces != null && namespaces.Length > 0) { route.DataTokens["Namespaces"] = namespaces; } routes.Add(name, route); * */ return route; }
public static LowerCaseUrlRoute MapLowerCaseUrlRoute(this RouteCollection routes, string name, string url, object defaults, object constraints, string[] namespaces) { if (routes == null) throw new ArgumentNullException("routes"); if (url == null) throw new ArgumentNullException("url"); var route2 = new LowerCaseUrlRoute(url, new MvcRouteHandler()) { Defaults = new RouteValueDictionary(defaults), Constraints = new RouteValueDictionary(constraints), DataTokens = new RouteValueDictionary() }; var item = route2; if ((namespaces != null) && (namespaces.Length > 0)) item.DataTokens["Namespaces"] = namespaces; routes.Add(name, item); return item; }