1

ページがサーバーを離れるときにいくつかの要素のテキストを変更したい (page_render、endRequest など)。

ページにアクセスするにはどうすればよいですか? また、値やテキストを変更する要素を見つけるにはどうすればよいですか?

4

3 に答える 3

1

これは、 HttpModuleを使用して行うことができます。これはパイプラインにあり、前処理と後処理を行うことができます。

たとえば、このwhitespaceremoverを見てください。

于 2010-09-12T09:39:21.390 に答える
1

HttpModules に加えて、'Render' メソッドをオーバーライドすることもできます (または、ベースページでこれを実行して再利用可能にします)。

protected override void Render(HtmlTextWriter writer )
{
    StringWriter stringWriter = new StringWriter();
    HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);

    base.Render(htmlWriter);

    string html = stringWriter.ToString();

    // do stuff with the html

    writer.Write(html);
} 
于 2010-09-12T09:42:15.677 に答える
1

多くのオプションがあり、どのスイートを使用するかは、実際の目標が何であるかに大きく依存します。

  1. Page の PreRender イベントを処理し、このイベントで必要な要素を調整します。理想的には、この処理を必要とするすべてのページによって継承される基本クラスにこれを配置します。これにより、実際のページ モデルとコントロール ツリーにアクセスできます。
  2. 応答ストリームに直接アクセスできるフィルターをセットアップします。これは、フィルターをインストールする個別の HttpModule として実装するか、Global.asax からフィルターを直接インストールするかの 2 つの方法で実装できます。どのルートを選択するかは、これがどれだけ再利用可能かによって異なります。HttpModule が最も再利用可能です。

フィルターを使用して HTTP 応答を変更するという素晴らしい記事を次に示します。

于 2010-09-12T09:43:08.870 に答える