2008-10-14 65 views
3

我正在寫一個簡單的CMS。如何攔截來自ViewResult的HTML,修改並提供它?

我希望能夠加載視圖,並將其包含在母版頁中,然後掃描HTML以便我可以用自己的博客輸出替換一些自定義標籤(例如{{blog}}),然後將其提供給瀏覽器。

如何從ViewResult訪問HTML以攔截它?

回答

3

聽起來像你想寫一個ActionFilterAttribute。此屬性有以下方法:

  • OnActionExecuting - 調用前執行裝飾作用
  • OnActionExecuted - 叫action方法被調用後,但ActionResult之前被渲染。
  • OnResultExecuting - 結果之前callled呈現
  • OnResultExecuted - 結果之後調用呈現

這裏有一個例子,它返回任一視「內容 - JSON或XML數據類型「標題:Create REST API using ASP.NET MVC that speaks both Json and plain Xml

+0

此答案中的鏈接已經死亡:-( – 2016-05-09 20:24:43

+0

我已更正鏈接,轉到我認爲是原始來源的文章 – 2016-05-14 12:17:21

3

這會很棘手,因爲ViewResult直接將其響應寫入Response.Stream。因此,您可能必須處理Response.Filter屬性以將ViewResult輸出到MemoryStream,以便在返回ContentResult之前操作內容。所有這些都可能發生在OnResultExecuting中。

相關問題