我在MVC网站上有一个问题,我希望在渲染到页面之前浏览输出html并执行一些正则表达式魔术来移除html中的一些属性和元素,然后“传递”“新” html到页面。
我注意到我可以使用IResultFilter并添加一个Filter .. 但是..在我自己的过滤器中我唯一知道的方法是Write方法..而且似乎ASP.net MVC在chuks中提供html字节,具体取决于“最终输出”的大小..但是我的情况这导致一些问题..因为块可能会在html中随时被切断,并且可能会例如切断我想要匹配我的正则表达式的属性...然后最终我的正则表达式不会好好工作。 ..所以..无论如何都要绕过“块” - 部分并在渲染之前对整个html输出运行我的正则表达式并用我修改过的html标记替换它?
答案 0 :(得分:0)
您可以为此编写httpmodule,并在OnEndRequest事件中进行修改。 http://www.drdobbs.com/windows/post-processing-the-output-of-aspnet-pag/212001499
public void OnEndRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication) sender;
HttpContext ctx = app.Context;
DoCustomProcessing(ctx.Response);
}