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(); 
      } 
     } 
    } 
}