ASP.NET MVC:在ActionFilterAttribute类中,OnActionExecuted和OnResultExecuted之间有什么区别?

时间:2011-06-07 05:30:15

标签: asp.net-mvc

ASP.NET MVC:在ActionFilterAttribute类中,OnActionExecuted和OnResultExecuted之间有什么区别?在实现压缩过滤器时,压缩代码应该放在哪些方法中?

2 个答案:

答案 0 :(得分:2)

有人有一些你可能会觉得有用的东西 - 看看这个:
http://nraykov.wordpress.com/2009/12/02/asp-net-mvc-custom-compression-action-filter/

执行操作后发生OnActionExecuted。我相信这将是控制离开方法的时候。然后,在动作方法之后执行返回的动作结果。例如,即使将视图返回为“返回视图();”,也不会在方法中处理视图。 - 它实际上是在action方法返回后处理的。
OnResultExecuted在执行返回值(IE actiontheult)时发生。

答案 1 :(得分:0)

为了实现自定义操作过滤器,您需要从ActionFilterAttribute继承 - 这是一个抽象类,它有四个可以覆盖的方法:

OnActionExecuting OnActionExecuted OnResultExecuting OnResultExecuted 由于它们的名称暗示可以在执行动作方法之前/之后以及执行结果之前/之后执行自定义逻辑。 Action过滤器具有Order属性,该属性指定在使用多个过滤器来装饰操作方法时应用过滤器的顺序。