我需要修改aspx的内容(不是物理上,但更改内存中的内容)的原因是因为我需要将某些自定义标记解析为正确的数据,然后才能处理整个aspx HttpHandler。
有没有办法呢?
答案 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类是有用的