我正在尝试修改输出流以搜索/替换从View返回的一些XHTML标记。我可以使用传统的ASP.NET响应过滤器,但首先考虑尝试ASP.NET MVC动作过滤器。
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上的示例仅显示日志记录基本属性,从不修改结果。
答案 0 :(得分:3)
我认为使用ActionFilterAttribute执行此操作并不是一个好主意,因为它专门用于控制器级别的决策,而不是特定于HTML请求后处理。正确执行此操作的最佳方法是创建特定的基本View类甚至ViewEngine,或者使用旧的HttpModule,因为它们是为您尝试的事情创建的。欢呼声。