示例#1
0
 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;
 }