0

我需要修改 aspx 的内容(不是物理上,而是更改内存中的内容)的原因是因为在整个 aspx 由 HttpHandler 处理之前,我制作的某些自定义标签需要解析为正确的数据。

有办法吗?

4

2 回答 2

0

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

这是一篇好文章:

http://aspnetresources.com/articles/HttpFilters

更新:也许这是XY Problem的一个案例,您可以使用简单的服务器控件来解决您的问题,该控件将正确呈现这些自定义标签。

于 2012-04-18T18:28:18.560 回答
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类是有用的

于 2012-04-18T18:38:05.560 回答