In ASP.NET MVC, come definire in quale sequenza vengono controllati / applicati i miei attributi personalizzati?

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

Domanda

Attualmente sto studiando la possibilità di utilizzare attributi personalizzati derivati ??da ActionFilterAttribute. Voglio realizzare un paio di cose con un paio di attributi. Il fatto è che voglio assicurarmi che uno degli attributi entri in gioco per primo, e non in una sequenza casuale.

Esempio:

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

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

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

È così che gli attributi vengono applicati nella sequenza menzionata nella decorazione del metodo?

In caso contrario, esiste un modo per definire una sequenza particolare per un gruppo di attributi [personalizzati]?

È stato utile?

Soluzione

La classe base ActionFilterAttribute ha una proprietà chiamata Order . Questo è quello che stai cercando.

public class MyController : Controller
{
    [Feature1(Order = 1), Feature2(Order = 2)]
    public ActionResult MyAction ()
    {
        /* ... */
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top