2008-11-05 15 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,因为它们是为您想要做的事情创建的。干杯。