2010-12-06 71 views
1

也许我之前关于output caching输出缓存的问题太复杂了。ASP.Net最终渲染页面事件

让我们简化。

如何才能从ASP.Net中的页面(或控件)事件中获取最终的“准备发送”呈现的HTML?我假设这将与用于输出缓存的内容相同,因此可以查询以找出将要放入缓存的内容。

+0

想了解的目标是什么? – 2010-12-06 19:44:51

+0

嗨Madhur,我试图'检查'什么将进入输出缓存之前,它是在一个很好的时候,该网站缓存一个无效的部分页面。我想在它发生之前缓存它。 – Flipster 2010-12-06 22:05:17

回答

1

代码复制来自: http://aspcode.net/Last-second-HTML-changes-in-your-ASPNET-page.aspx

protected override void Render(HtmlTextWriter writer) 
{ 
    using(System.IO.MemoryStream msOur = new System.IO.MemoryStream()) 
    { 
     using(System.IO.StreamWriter swOur = new System.IO.StreamWriter(msOur)) 
     { 
      HtmlTextWriter ourWriter = new HtmlTextWriter(swOur); 
      base.Render(ourWriter); 
      ourWriter.Flush(); 
      msOur.Position = 0; 
      using(System.IO.StreamReader oReader = new System.IO.StreamReader(msOur)) 
      { 
       string sTxt = oReader.ReadToEnd();      
       Response.Write(sTxt); 
       oReader.Close(); 
      } 
     } 
    } 
}