2010-12-06 13 views
1

おそらく、私の前の質問output cachingの出力キャッシュは複雑すぎました。ASP.Net最終レンダリングページイベント

簡略化しましょう。

ASP.Netのページ(またはコントロール)イベントからレンダリングされたHTMLを「送信準備完了」状態にするにはどうすればよいですか?私は、これが出力キャッシュに使用されるのと同じコンテンツであると仮定し、キャッシュに何が置かれるのかを調べるために照会することができます。コピー

+0

は客観的であるかを理解しますか? –

+0

こんにちはMadhur、私は、サイトが無効な部分的なページをキャッシュしている間に、それが入る前に出力キャッシュに何が入るのかを「調べる」ことを試みています。私はそれが起こる前にこれをキャッシュしたいと思います。 – Flipster

答えて

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

これは、Server.ExecuteまたはResponse.Outストリームに直接書き込む他のステートメントではなく、通常レンダリングされるものだけを捕捉します。 – sisve

+0

おかげでMadhur。出力キャッシュが.Renderからの出力を直接使用しているかどうかはわかりませんが、これは見込みのあるようです。 +1して受け入れます。 – Flipster

+0

更新:それは働いた!ありがとう。 – Flipster