public string GetIncludeFileVirtualPath(string includeVirtualPath) { //string result = includeVirtualPath; //if (includeVirtualPath.StartsWith("/")) //{ // result = "~" + includeVirtualPath; //} if (includeVirtualPath.StartsWith("~/")) { return(UrlUtil.ConvertDots(includeVirtualPath)); } if (includeVirtualPath.StartsWith("/")) { return(UrlUtil.ConvertDots("~" + includeVirtualPath)); } string temp = IOUtil.JoinPath(Path.GetDirectoryName(this.FilePath), includeVirtualPath); if (m_BaseFile != null && File.Exists(temp) == false) { temp = IOUtil.JoinPath(Path.GetDirectoryName(m_BaseFile.FilePath), includeVirtualPath); } temp = new DirectoryInfo(temp).FullName; temp = temp.Substring(Globals.ApplicationPath.Length); return(UrlUtil.JoinUrl("~/", temp)); //return result; }
internal void Execute(string virtualPath, bool endResponse, NameObjectCollection parameters, HtmlTextWriter writer) { if (virtualPath == null) { HttpContext.Current.Response.Write(Resources.PageBase_IncludeSrcIsRequired); return; } virtualPath = MakeAbsolutePath(virtualPath); virtualPath = UrlUtil.ConvertDots(virtualPath); string path = TemplateManager.ParseTemplate(virtualPath); if (virtualPath.EndsWith(".aspx", StringComparison.OrdinalIgnoreCase)) { PageBase page = BuildManager.CreateInstanceFromVirtualPath(path, typeof(PageBase)) as PageBase; if (page != null) { page.Parameters = parameters; page.HtmlTextWriter = writer; page.ProcessRequest(HttpContext.Current); } } else if (virtualPath.EndsWith(".ascx", StringComparison.OrdinalIgnoreCase)) { if (writer == null) { writer = new HtmlTextWriter(new HttpResponseWriter(HttpContext.Current.Response)); } PagePartBase part = m_LoadControlCallback(path) as PagePartBase; if (part != null) { part.Parameters = parameters; part.HtmlTextWriter = writer; part.RenderControl(writer); } } if (endResponse) { HttpContext.Current.Response.End(); } }