Fix*_*xer 1 c# asp.net httpmodule
我试图在响应中注入一些额外的标记,但它没有按预期输出.
例如,以下代码将输出:
... </html>CONTENT
private void OnEndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("CONTENT");
}
Run Code Online (Sandbox Code Playgroud)
但我希望在关闭html标记之前输出内容
... CONTENT</html>
Run Code Online (Sandbox Code Playgroud)
关于如何实现这一点的任何想法?
你应该使用一个HttpContext.Response.Filter.
查看此MSDN文档页面:
这篇非常古老的文章也应该澄清这一点:
总而言之,您需要创建一个包含原始实现的Stream实现HttpContext.Current.Response.Filter.
为了在文档的某些部分中注入HTML,您只需要将字节转换为字符串并使用String.IndexOf正则表达式,如果您在整个代码行中,则需要将其删除.
之后,只需连接,修改或替换获得的字符串,并将其放入原始默认响应过滤器中的包装流中.