6

Decir que tengo:¿Cuál es el orden de ejecución al tratar con .NET MVC 2 Action Filters?

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

Los atributos se ejecutan en el orden siguiente: 2, 3, 1

Esto tiene sentido porque los atributos 2 y 3 tienen un orden de -1 y se ejecutará antes de atributo 1, que tiene un orden establecido explícitamente igual a 0.

Ahora, digamos que tengo:

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

El los atributos se ejecutan en el siguiente orden: 1, 2, 3

¿Por qué es que el atributo 2 en este caso (que tiene un orden igual a 0) se ejecuta antes del atributo 3 (que tiene un orden igual a -1)?

Respuesta

3

Deben ejecutarse en el orden 1, 3, 2, tal como lo había propuesto. Y, de hecho, se ejecutan en el orden correcto en mi máquina.

¿Puede proporcionar las definiciones de sus tres atributos? Puede haber algo más en juego aquí.

+0

¡Ahh! Pasé por alto por completo que, en mi circunstancia, Attribute3 era OnResultExecuting en lugar de OnActionExecuting. Esto tiene sentido ahora. Gracias por tu ayuda en esto. – user357933

Cuestiones relacionadas