示例#1
0
        public override IHttpVirtualPathData GetVirtualPath(HttpRequestMessage request, IDictionary <string, object> values)
        {
            // Add querystring default values if applicable.
            _visitor.AddQueryStringDefaultsToRouteValues(values);

            // Let the underlying route do its thing.
            var virtualPathData = base.GetVirtualPath(request, values);

            if (virtualPathData == null)
            {
                return(null);
            }

            // Translate this path if a translation is available.
            var translatedVirtualPath = _visitor.GetTranslatedVirtualPath(t => ((HttpRoute)t).GetVirtualPath(request, values));

            if (translatedVirtualPath != null)
            {
                virtualPathData = translatedVirtualPath;
            }

            // Lowercase, append trailing slash, etc.
            var virtualPath = _visitor.GetFinalVirtualPath(virtualPathData.VirtualPath);

            return(new HttpVirtualPathData(virtualPathData.Route, virtualPath));
        }
示例#2
0
        public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
        {
            // Add querystring default values if applicable.
            _visitor.AddQueryStringDefaultsToRouteValues(values);

            // Let the underlying route do its thing.
            var virtualPathData = base.GetVirtualPath(requestContext, values);

            if (virtualPathData == null)
            {
                return(null);
            }

            // Translate this path if a translation is available.
            var translatedVirtualPath = _visitor.GetTranslatedVirtualPath(t => ((Route)t).GetVirtualPath(requestContext, values));

            if (translatedVirtualPath != null)
            {
                virtualPathData = translatedVirtualPath;
            }

            // Lowercase, append trailing slash, etc.
            virtualPathData.VirtualPath = _visitor.GetFinalVirtualPath(virtualPathData.VirtualPath);

            return(virtualPathData);
        }