处理.NET MVC 2 Action Filters时的执行顺序是什么?

use*_*933 6 asp.net-mvc action-filter actionfilterattribute asp.net-mvc-2

说我有:

[Attribute1(Order=0)]  
public class Controller1  
{  
    [Attribute2]  
    [Attribute3]  
    public ActionResult Action1() { ... }  
}
Run Code Online (Sandbox Code Playgroud)

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

这是有道理的,因为属性2和3的顺序为-1,并且将在属性1之前执行,属性1具有明确设置的顺序等于0.

现在,让我说我有:

[Attribute1]  
[Attribute2(Order=0)]  
public class Controller1  
{  
    [Attribute3]  
    public ActionResult Action1() { ... }  
}
Run Code Online (Sandbox Code Playgroud)

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

为什么在这种情况下属性2(有一个等于0的顺序)在属性3(有一个等于-1的顺序)之前执行?

Lev*_*evi 3

它们应该按照 1、3、2 的顺序执行,正如您所提议的那样。事实上,它们在我的机器上以正确的顺序执行。

您能提供三个属性的定义吗?这里可能还有其他事情在起作用。