2013-12-11 58 views
1

我有一個MVC網站的問題,我想要在呈現到頁面之前通過輸出html,並執行一些正則表達式魔法來刪除HTML和HTML中的一些屬性和元素,然後將「新」html傳遞給頁面。在呈現前替換輸出html,刪除屬性

我注意到我可以使用一個IResultFilter並添加一個Filter .. 但是..在我自己的過濾器中,我意識到的唯一方法是Write方法..它看起來像ASP.net MVC提供了html-bytes在chuks中,取決於「最終輸出」的大小......但在我的情況下,這會導致一些問題..因爲chunk可能會在html中隨時被切斷,並可能在那裏例如切斷屬性,我想匹配我的正則表達式..然後最終與我的正則表達式工作不正常。 ..所以有無論如何繞過「塊」部分,只是運行我的正則表達式對整個html輸出之前它的呈現和替換我的修改後的html標記?

回答

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); 
} 
+0

是的,但是...這篇文章還指.Filter ..我想還是會我的輸出分解成取決於輸出標記的大小字節數組的塊..還是我我不正確? – Inx

+0

它與mvc不同。這裏是關於這個話題的另一個鏈接:http://www.4guysfromrolla.com/articles/120308-1.aspx。這裏還有一個我發現:http://www.windowsdevcenter.com/pub/a/dotnet/2003/10/20/httpfilter.html –