zoukankan      html  css  js  c++  java
  • 动态加载用户控件内容

    /// <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;
    }
  • 相关阅读:
    课堂小组讨论结果
    Beta阶段项目总结
    第二次冲刺团队绩效评估
    第二次冲刺-站立会议10
    第二次冲刺-站立会议09
    第二次冲刺-站立会议08
    第二次冲刺-站立会议07
    第二次冲刺-站立会议06
    第二次冲刺-站立会议05
    第二次冲刺-站立会议04
  • 原文地址:https://www.cnblogs.com/wzh13681626019/p/2844006.html
Copyright © 2011-2022 走看看