예제 #1
0
        protected string GenerateProxyUrl(ProxyRenderContext proxyRenderContext, string url, bool isForm)
        {
            if (string.IsNullOrEmpty(url))
            {
                return("");
            }
            if (Uri.IsWellFormedUriString(url, UriKind.Absolute))
            {
                var destinationURI = new Uri(url);
                var host           = proxyRenderContext.ProxyPosition.HostUri;
                if (destinationURI.Host.ToLower() == host.Host.ToLower())
                {
                    url = destinationURI.PathAndQuery;
                }
            }

            if (!url.StartsWith("#") && !url.StartsWith("javascript:") && !Uri.IsWellFormedUriString(url, UriKind.Absolute))
            {
                var encodedModuleUrl = ModuleUrlHelper.Encode(url);
                var routeValues      = proxyRenderContext.PageRequestContext.ModuleUrlContext.GetRouteValuesWithModuleUrl(proxyRenderContext.ProxyPosition.PagePositionId, encodedModuleUrl, false);
                var urlHelper        = new UrlHelper(proxyRenderContext.ControllerContext.RequestContext);
                var pageUrl          = urlHelper.FrontUrl(proxyRenderContext.PageRequestContext.Site, proxyRenderContext.PageRequestContext.RequestChannel).PageUrl(proxyRenderContext.PageRequestContext.Page.FullName, routeValues).ToString();
                if (isForm)
                {
                    pageUrl = Kooboo.Web.Url.UrlUtility.AddQueryParam(pageUrl, Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter, proxyRenderContext.ProxyPosition.PagePositionId);
                }

                return(pageUrl);
            }
            else
            {
                return(url);
            }
        }
예제 #2
0
        protected string GenerateProxyUrl(Page_Context pageContext, string positionId, string url, bool isForm)
        {
            if (string.IsNullOrEmpty(url))
            {
                return("");
            }

            if (!url.StartsWith("#") && !url.StartsWith("javascript:") && !Uri.IsWellFormedUriString(url, UriKind.Absolute))
            {
                var encodedModuleUrl = ModuleUrlHelper.Encode(url);
                var routeValues      = pageContext.PageRequestContext.ModuleUrlContext.GetRouteValuesWithModuleUrl(positionId, encodedModuleUrl, false);
                var pageUrl          = pageContext.FrontUrl.PageUrl(pageContext.PageRequestContext.Page.FullName, routeValues).ToString();
                if (isForm)
                {
                    pageUrl = Kooboo.Web.Url.UrlUtility.AddQueryParam(pageUrl, Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter, positionId);
                }

                return(pageUrl);
            }
            else
            {
                return(url);
            }
        }