【问题标题】:Replace Output html before rendered, remove attributes在渲染之前替换输出 html,删除属性
【发布时间】:2013-12-11 14:18:46
【问题描述】:

我在 MVC 站点中遇到问题,我想在输出 html 呈现到页面之前通过它并执行一些正则表达式魔术来删除 html 中的一些属性和元素,然后“交付”“新” html 到页面。

我注意到我可以使用 IResultFilter 并添加一个 Filter.. 但是.. 在我自己的过滤器中,我知道的唯一方法是 Write 方法.. 似乎 ASP.net MVC 以 chuks 形式提供 html 字节,具体取决于“最终输出”的大小.. 但在我的情况这会导致一些问题..因为该块可能会在 html 中的任何时候被切断,并且例如可能会在我想要匹配我的正则表达式的属性上被切断..然后我的正则表达式不会好好工作。 ..所以..有没有办法绕过“块”部分,只是在渲染之前对整个 html 输出运行我的正则表达式,然后用我修改过的 html 标记替换它?

【问题讨论】:

    标签: c# html asp.net-mvc output


    【解决方案1】:

    您可以为此编写一个 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);
    }
    

    【讨论】:

    猜你喜欢
    • 2019-11-18
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多