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

时间:2022-08-14 08:06:42

模块化的时候需要用到:

  

        #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