public static IDictionary<string, string> LookupRouteValues (HttpContextBase httpContext, IEnumerable<RouteDescriptor> routeDescriptors, string routePath) { var queryStringIndex = routePath.IndexOf('?'); var routePathNoQueryString = queryStringIndex == -1 ? routePath : routePath.Substring(0, queryStringIndex); var queryString = queryStringIndex == -1 ? null : routePath.Substring(queryStringIndex + 1); var lookupContext = new LookupHttpContext(httpContext, routePathNoQueryString); var matches = routeDescriptors .Invoke(routeDescriptor => routeDescriptor.Route.GetRouteData(lookupContext), NullLogger.Instance) .Where(routeData => routeData != null) .Select(data => ToRouteValues(data, queryString)); return matches.FirstOrDefault(); }
public static IDictionary <string, string> LookupRouteValues (HttpContextBase httpContext, IEnumerable <RouteDescriptor> routeDescriptors, string routePath) { var queryStringIndex = routePath.IndexOf('?'); var routePathNoQueryString = queryStringIndex == -1 ? routePath : routePath.Substring(0, queryStringIndex); var queryString = queryStringIndex == -1 ? null : routePath.Substring(queryStringIndex + 1); var lookupContext = new LookupHttpContext(httpContext, routePathNoQueryString); var matches = routeDescriptors .Invoke(routeDescriptor => routeDescriptor.Route.GetRouteData(lookupContext), NullLogger.Instance) .Where(routeData => routeData != null) .Select(data => ToRouteValues(data, queryString)); return(matches.FirstOrDefault()); }