6

Dire que j'ai:Quel est l'ordre d'exécution pour les filtres d'action .NET MVC 2?

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

Les attributs sont exécutées dans l'ordre suivant: 2, 3, 1

Cela est logique car les attributs 2 et 3 ont un ordre de -1 et sera exécuté avant attribut 1 qui a un ordre défini explicitement égal à 0.

maintenant, disons que j'ai:

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

Le les attributs sont exécutés dans l'ordre suivant: 1, 2, 3

Pourquoi est-ce que l'attribut 2 dans ce cas (qui a un ordre égal à 0) est exécuté avant l'attribut 3 (qui a un ordre égal à -1)?

Répondre

3

Ils doivent être exécutés dans l'ordre 1, 3, 2, comme vous l'avez proposé. Et en fait, ils s'exécutent dans le bon ordre sur ma machine.

Pouvez-vous fournir les définitions de vos trois attributs? Il pourrait y avoir quelque chose d'autre en jeu ici.

+0

Ahh! J'ai complètement oublié que, dans mon cas, Attribute3 était OnResultExecuting au lieu de OnActionExecuting. Cela a du sens maintenant. Merci pour votre aide. – user357933

Questions connexes