6

Say mam:Jaka jest kolejność wykonywania w przypadku filtrów akcji .NET MVC 2?

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

Atrybuty zostanie wykonany w następującej kolejności: 2, 3, 1

Ma to sens, ponieważ atrybuty 2 i 3 mają kolejność -1 i będą realizowane przed atrybutu 1, który ma wyraźnie określonej kolejności równa 0.

Teraz, powiedzmy, że mam:

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

atrybuty są wykonywane w następującej kolejności: 1, 2, 3

Dlaczego jest to, że atrybut 2 w tym przypadku (który ma kolejność równą 0) jest wykonywany przed atrybutem 3 (który ma kolejność równą -1))?

Odpowiedz

3

Powinny zostać wykonane w kolejności 1, 3, 2, dokładnie tak, jak proponowałeś. W rzeczywistości są one wykonywane we właściwej kolejności na moim komputerze.

Czy możesz podać definicje trzech atrybutów? W grze może być coś jeszcze.

+0

Ahh! Całkowicie przeoczyłem, że w moich okolicznościach Attribute3 był OnResultExecuting zamiast OnActionExecuting. Teraz ma to sens. Dziękuję za pomoc w tej sprawie. – user357933

Powiązane problemy