6

说我有:处理.NET MVC 2动作过滤器时的执行顺序是什么?

[Attribute1(Order=0)] 
public class Controller1 
{ 
    [Attribute2] 
    [Attribute3] 
    public ActionResult Action1() { ... } 
} 

向属性按以下顺序执行: 2,3,1

这是有道理的,因为属性2和3的-1的顺序,将被执行属性1,它有一个明确设置顺序等于0

现在之前,可以说我有:

[Attribute1] 
[Attribute2(Order=0)] 
public class Controller1 
{ 
    [Attribute3] 
    public ActionResult Action1() { ... } 
} 

的属性按以下顺序执行: 1,2,3

为什么在此情况下(其顺序等于0)属性2在属性3(其顺序等于-1 )?

回答

3

按照您的建议,它们应该按照1,3,2的顺序执行。事实上,他们在我的机器上以正确的顺序执行。

你能提供你的三个属性的定义吗?这里可能还有别的东西在玩。

+0

啊!我完全忽略了,在我的情况下,Attribute3是OnResultExecuting而不是OnActionExecuting。这现在有道理。感谢您的帮助。 – user357933 2010-06-04 17:01:17

相关问题