【发布时间】:2012-04-30 05:05:56
【问题描述】:
我需要修改一个 aspx 的内容(不是物理上,而是改变内存中的内容)的原因是因为在处理整个 aspx 之前,我需要将某些自定义标签解析为正确的数据HttpHandler。
有办法吗?
【问题讨论】:
标签: asp.net httphandler httpmodule
我需要修改一个 aspx 的内容(不是物理上,而是改变内存中的内容)的原因是因为在处理整个 aspx 之前,我需要将某些自定义标签解析为正确的数据HttpHandler。
有办法吗?
【问题讨论】:
标签: asp.net httphandler httpmodule
您可以使用响应过滤器 (HttpFilter) 并即时修改内容,基本上是在响应形成之后,在 EndRequest 调用您的过滤器之前(它是流后代),您可以根据需要对其进行修改。在 HttpModule 的 Init 方法中,您必须安装 HttpFilter (Response.Filter),它将为该请求调用。
这是一篇好文章:
http://aspnetresources.com/articles/HttpFilters
更新: 也许这是XY Problem 的情况,您可以通过简单的服务器控件来解决您的问题,该控件将正确呈现这些自定义标签。
【讨论】:
你可以使用渲染事件
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类是有用的
【讨论】: