6

Sagen, ich habe:Welche Ausführungsreihenfolge gibt es bei .NET MVC 2-Aktionsfiltern?

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

Die Attribute in der folgenden Reihenfolge ausgeführt werden soll: 2, 3, 1

Dies macht Sinn, weil Attribute 2 und 3, um eine Größenordnung von -1 haben und ausgeführt werden vor Attribut 1, die eine explizit festgelegt, um gleich 0.

lässt jetzt hat, sagen, ich habe:

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

Die Attribute werden in der folgenden Reihenfolge ausgeführt: 1, 2, 3

Warum wird Attribut 2 in diesem Fall (das eine Reihenfolge gleich 0 hat) vor Attribut 3 ausgeführt (das eine Reihenfolge gleich -1 hat))

Antwort

3

Sie sollten in der Reihenfolge 1, 3, 2 ausgeführt werden, genau wie Sie vorgeschlagen hatten. Und tatsächlich werden sie in der richtigen Reihenfolge auf meiner Maschine ausgeführt.

Können Sie die Definitionen Ihrer drei Attribute angeben? Da könnte noch etwas anderes im Spiel sein.

+0

Ahh! Ich habe völlig übersehen, dass Attribute3 in meinem Fall OnResultExecuting statt OnActionExecuting war. Dies macht jetzt Sinn. Danke für Ihre Hilfe. – user357933

Verwandte Themen