次の問題があります。
ページ内の 1 つのコントロールのみをキャッシュしないようにするため、出力キャッシュ置換 (Substitution クラス) を使用しようとしています。ただし、このコントロールの内容はページの上部 ( の前) に印刷されます。コードにアクセスできるようにするために PageAdapter を使用しているためだと思います.Renderメソッドでは、次のことを行います。
protected override void Render(HtmlTextWriter output)
{
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
base.Render(hw);
string html = sb.ToString();
//Some operations with html code, like replace, cleaning, etc.
output.Write(html);
}
文字列形式の HtmlTextWriter の html コードが必要な理由は、クリーニング操作を実行するためです。Render メソッドによって受信された出力変数では、html コードが表示されないため、これらの操作を実行できません。
では、この PageAdapter で出力キャッシュの代替を使用する方法はありますか? または、PageAdapter の Render メソッドで受け取った出力変数から html コードを取得する方法はありますか?