2008-11-05 17 views
2

我試圖修改輸出流以搜索/替換從視圖返回的一些XHTML標記。我可以使用傳統的ASP.NET響應過濾器,但認爲先嚐試ASP.NET MVC操作過濾器。如何使用ASP.NET MVC ActionFilterAttribute/IResultFilter修改輸出

public class MyResultFilter : ActionFilterAttribute 
{ 
    public override void OnResultExecuting(ResultExecutingContext filterContext) 
    {    
     base.OnResultExecuting(filterContext); 
    } 
    public override void OnResultExecuted(ResultExecutedContext filterContext) 
    { 
     ViewResult viewResult = filterContext.Result as ViewResult; 
     Debug.WriteLine("OnResultExecuted"); 
     base.OnResultExecuted(filterContext); 
    } 
} 

我無法確定如何修改或獲取viewResult輸出流的保留位置。 Web上的示例僅顯示日誌記錄的基本屬性,從不修改結果。

回答

3

我不認爲用ActionFilterAttribute來做這件事並不是個好主意,只要它專門用於控制器級別的決定,並不認爲特定於HTML請求後處理。正確執行此操作的最佳方法是創建特定的基本View類甚至ViewEngine,或者使用舊的HttpModule,因爲它們是爲您想要做的事情創建的。乾杯。