如何在处理程序处理之前以编程方式修改aspx文件内容?

时间:2012-04-18 18:06:02

标签: asp.net httphandler httpmodule

我需要修改aspx的内容(不是物理上,但更改内存中的内容)的原因是因为我需要将某些自定义标记解析为正确的数据,然后才能处理整个aspx HttpHandler。

有没有办法呢?

2 个答案:

答案 0 :(得分:0)

您可以使用响应过滤器(HttpFilter)并动态修改内容,基本上在响应形成之后,在调用EndRequest过滤器之前(它是流后代),您可以根据需要进行修改。在HttpModule,Init方法中你必须安装HttpFilter(Response.Filter),它将被调用该请求。

这是一篇好文章:

http://aspnetresources.com/articles/HttpFilters

更新: 也许这是XY Problem的情况,您可以使用简单的服务器控件来解决您的问题,这将有效地呈现这些自定义标记。

答案 1 :(得分:0)

您可以使用渲染事件

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类是有用的