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