动态加载用户控件内容

/// <summary>
/// 根据用户控件的虚拟路径获取用户控件的Html内容
/// </summary>
/// <param name="userControlVirtualPath">用户控件的虚拟路径</param>
/// <returns>用户控件的Html内容</returns>
public string GetUserControlContents(string userControlVirtualPath)
{
    var ownerPage = new Page();
    var userControl = (UserControl)ownerPage.LoadControl(userControlVirtualPath);
    userControl.EnableViewState = false;
    var form = new HtmlForm();
    form.Controls.Add(userControl);
    ownerPage.Controls.Add(form);
    var writer = new StringWriter();
    System.Web.HttpContext.Current.Server.Execute(ownerPage, writer, false);
    return FilterHtml(writer.ToString());
}

 

/// <summary>
/// 过滤Html
/// </summary>
/// <param name="html">用户控件Html内容</param>
/// <returns>过滤后的Html内容</returns>
private string FilterHtml(string html)
{
     if (string.IsNullOrEmpty(html))
     {
          return string.Empty;
     }

     var doc = new XmlDocument();
     doc.LoadXml(html);
     var form = doc.SelectSingleNode("/form");
     var nodes = doc.SelectNodes("/form/div[@class='aspNetHidden']");

     if (nodes != null && form != null)
     {
          foreach (XmlNode oldChild in nodes)
          {
               form.RemoveChild(oldChild);
          }
     }

     html = doc.InnerXml;
     html = Regex.Replace(html, @"<[/]?(form)[^>]*?>", "", RegexOptions.IgnoreCase);
     return html;
}

 

转载于:https://www.cnblogs.com/wzh13681626019/archive/2013/01/04/2844006.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值