Пример #1
0
        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;
        }
Пример #2
0
        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();
            }
        }