En ASP.NET MVC, ¿cómo definir en qué secuencia se verifican / aplican mis atributos personalizados?

StackOverflow https://stackoverflow.com/questions/815795

Pregunta

Actualmente estoy investigando la posibilidad de usar atributos personalizados derivados de ActionFilterAttribute. Quiero lograr un par de cosas con un par de atributos. La cosa es que quiero asegurarme de que uno de los atributos entre en juego primero, y no en una secuencia aleatoria.

Ejemplo:

public class Feature1Attrubute : ActionFilterAttribute
{
    /* ... */
}

public class Feature2Attrubute : ActionFilterAttribute
{
    /* ... */
}

public class MyController : Controller
{
    [Feature1, Feature2]
    public ActionResult MyAction ()
    {
        /* ... */
    }
}

¿Es para que los atributos se apliquen en la secuencia que mencionaron en el método de decoración?

Si no, ¿hay una manera de definir una secuencia particular para un grupo de atributos [personalizados]?

¿Fue útil?

Solución

La clase base ActionFilterAttribute tiene una propiedad llamada Order . Eso es lo que estás buscando.

public class MyController : Controller
{
    [Feature1(Order = 1), Feature2(Order = 2)]
    public ActionResult MyAction ()
    {
        /* ... */
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top