public bool Match(string url, ref RouteMatchResult result, QueryString queryString) { var items = mMatchRoute; for (int i = 0; i < items.Length; i++) { UrlRoute urlRoute = items[i]; Dictionary <string, string> ps = new Dictionary <string, string>(); if (urlRoute.Match(url, ps)) { if (ps.Count > 0) { foreach (var item in ps) { queryString.Add(item.Key, item.Value); } } result.Ext = urlRoute.ReExt; result.RewriteUrl = urlRoute.GetRewriteUrl(ps); result.RewriteUrlLower = HttpParse.CharToLower(result.RewriteUrl); return(true); } } return(false); }
public UrlRoute Match(string url, ref RouteMatchResult result, Dictionary <string, string> parameters, string ext, HttpRequest request) { var items = mMatchRoute; for (int i = 0; i < items.Length; i++) { UrlRoute urlRoute = items[i]; if (string.Compare(urlRoute.Ext, ext, true) == 0) { if (urlRoute.Prefix != null) { var prefixValue = urlRoute.Prefix.GetPrefix(request); if (string.Compare(prefixValue, urlRoute.Prefix.Value, true) != 0) { continue; } } if (urlRoute.Match(url, parameters)) { result.Ext = urlRoute.ReExt; result.RewriteUrl = urlRoute.GetRewriteUrl(parameters); return(urlRoute); } } } return(null); }