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

时间:2010-06-03 21:42:53

标签: asp.net-mvc asp.net-mvc-2 action-filter actionfilterattribute

说我有:

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

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

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

现在,我想说:

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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