asp.net动态解析用户控件,UserControl

模块化的时候需要用到:

  

        #region asp.net解析用户控件
        /// <summary>
        /// asp.net 解析用户控件
        /// </summary>
        /// <param name="virtualPath">控件文件的虚拟路径。</param>
        /// <returns></returns>
        public string RenderControl(string virtualPath)
        {
            string html = string.Empty;
            //独立的用户控件是不能解析的 所以需要添加到页面上
            Page page = new Page();//创建一个Page对象
            UserControl ctrl = (UserControl)page.LoadControl(virtualPath);
            StringWriter output = new StringWriter();
            using (var sw = new System.Web.UI.HtmlTextWriter(output))
            {
                page.Controls.Add(ctrl);//添加用户控件到页面,独立的控件是不能解析的 
                page.RenderControl(sw);//解析控件 
                html = sw.InnerWriter.ToString();//输出解析内容 
            }
            output.Dispose();
            return html;
        }
        #endregion