protected RouteValueDictionary CloneRouteDirectory(PageHandlerExecutingContext context) { var dictionaryData = new RouteValueDictionary(); string[] RouteKeyNames = null; var IsRouteKey = !string.IsNullOrWhiteSpace(RouteKeys); if (IsRouteKey) { RouteKeyNames = RouteKeys.Split(",", StringSplitOptions.RemoveEmptyEntries); } var AnyRouteKey = RouteKeyNames != null && RouteKeyNames.Any(); foreach (var item in context.HttpContext.Request.Query) { if (string.Equals(item.Key, "handler", StringComparison.OrdinalIgnoreCase) && !CopyRouteDataHandler) { continue; } if (IsRouteKey) { if (AnyRouteKey && RouteKeyNames.Contains(item.Key)) { dictionaryData.Add(item.Key, item.Value); } } else { dictionaryData.Add(item.Key, item.Value); } } return(dictionaryData); }