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); } }
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); } }