现在的位置: 首页 > 综合 > 正文

asp.net 截取输出的html

2013年09月20日 ⁄ 综合 ⁄ 共 908字 ⁄ 字号 评论关闭

 大家在了解了asp.net页面的生命周期后,可能会有这样的一个想法,能不能在html输出时,服务端截取要输出的html呢,在网上查了很多资料也没找到答案,还是在一位高人的指点下,终于知道怎么做了,拿出来跟大家分享一下。

大家都知道,页面的生命周期中,最后一个阶段是呈现,执行Render事件。

所以可以重写这个方法

       protected override void Render(HtmlTextWriter writer)
        {
            //base.Render(writer);

            System.IO.MemoryStream mem = new System.IO.MemoryStream();
            System.IO.StreamWriter twr = new System.IO.StreamWriter(mem);
            System.Web.UI.HtmlTextWriter myWriter = new HtmlTextWriter(twr);
            base.Render(myWriter);

            myWriter.Flush();
            myWriter.Dispose();

            System.IO.StreamReader strmRdr = new System.IO.StreamReader(mem);
            strmRdr.BaseStream.Position = 0;
            string pageContent = strmRdr.ReadToEnd();//获取要输出的html
            strmRdr.Dispose();
            mem.Dispose();
            // 这里设置下断点,查看pageContent的值
           // Session["Htmlcode"] = pageContent;
            writer.Write(pageContent);写入输出流中

        }

 

抱歉!评论已关闭.