0

aspx のコンテンツを変更する (物理的にではなく、メモリ内のコンテンツを変更する) 必要がある理由は、aspx 全体が HttpHandler によって処理される前に、作成した特定のカスタム タグを正しいデータに解析する必要があるためです。

その方法はありますか?

4

2 に答える 2

0

Renderイベントを使用できます

Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)


    Dim sw As New System.IO.StringWriter
    Dim hw As New HtmlTextWriter(sw)
    MyBase.Render(hw)
    Dim html As String = sw.ToString()

    ' html = html.Replace() etc to change your html code in here

    writer.Write(html)
End Sub

編集asp.netがaspxを処理する前に、マークアップを動的に挿入したいのですが、FileLevelPageControlBuilderクラスが役立つかもしれません

于 2012-04-18T18:38:05.560 に答える
0

応答フィルター (HttpFilter) を使用して、基本的に応答が形成された後、EndRequest フィルターが呼び出される前 (ストリームの子孫) にコンテンツをその場で変更し、必要に応じて変更することができます。HttpModule では、Init メソッドで HttpFilter (Response.Filter) をインストールする必要があり、その要求に対して呼び出されます。

ここに良い記事があります:

http://aspnetresources.com/articles/HttpFilters

更新: おそらくこれはXY 問題のケースであり、これらのカスタム タグを適切にレンダリングする単純なサーバー コントロールで問題を解決できます。

于 2012-04-18T18:28:18.560 に答える