Procedura: creare un filtro azione personalizzato
Comprimi il sommario
Espandi il sommario
Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Procedura: creare un filtro azione personalizzato

Un filtro azione è costituito da logica che viene eseguita immediatamente prima o immediatamente dopo l'esecuzione di un metodo di azione. È possibile utilizzare filtri azione per la registrazione, l'autenticazione, la memorizzazione nella cache di output o altre attività.

Un filtro azione viene implementato come attributo che eredita dalla classe ActionFilterAttribute. Se si desidera che la logica venga eseguita prima del metodo di azione, eseguire l'override del metodo OnActionExecuting. Se si desidera che la logica venga eseguita dopo il metodo di azione, eseguire l'override del metodo OnActionExecuted. Dopo avere definito un filtro azione, sarà possibile utilizzare l'attributo per contrassegnare i metodi di azione ai quali si desidera applicare il filtro.

In questo argomento viene descritto come creare un filtro azione e utilizzare l'attributo per contrassegnare uno o più metodi di azione.

Per creare un filtro azione

  1. In Visual Studio aprire il progetto di applicazione MVC al quale si desidera aggiungere il filtro azione.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Controller, scegliere Aggiungi, quindi fare clic su Nuovo elemento.

    Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.

  3. In Modelli selezionare il modello Classe.

  4. Nella casella Nome immettere il nome della classe Attribute del filtro azione che si sta creando.

    NotaNota:

    Per convenzione, il nome della classe Attribute del filtro azione deve terminare con "Attribute", ad esempio LogFilterAttribute o OutputFilterAttribute.

  5. Fare clic su Aggiungi.

    La classe verrà aggiunta al progetto.

  6. Nella nuova classe aggiungere il codice che consenta alla classe di ereditare dalla classe ActionFilterAttribute, come illustrato nell'esempio seguente:

    Public Class CachingFilterAttribute
        Inherits ActionFilterAttribute
    

    public class CachingFilterAttribute : ActionFilterAttribute
    
  7. Se si desidera che il filtro venga eseguito immediatamente prima di un metodo di azione, eseguire l'override del metodo OnActionExecuting e aggiungere la logica.

    Nell'esempio seguente viene illustrato un metodo OnActionExecuting di base.

    Public Overrides Sub OnActionExecuting(ByVal filterContext As _
        ActionExecutingContext)
        ' The action filter logic.
    End Sub
    

    public override void OnActionExecuting(ActionExecutingContext 
        filterContext)
    {
        // The action filter logic.
    }
    
  8. Se si desidera che il filtro venga eseguito immediatamente dopo un metodo di azione, eseguire l'override del metodo OnActionExecuted e aggiungere la logica.

    Nell'esempio seguente viene illustrato un metodo OnActionExecuted di base.

    Public Overrides Sub OnActionExecuted(ByVal filterContext As _
        ActionExecutedContext)
        ' The action filter logic.
    End Sub
    

    public override void OnActionExecuted(ActionExecutedContext 
        filterContext)
    {
        // The action filter logic.
    }
    
  9. Nelle classi controller aggiungere l'attributo di filtro a un metodo di azione al quale si desidera applicare il filtro.

    Nell'esempio seguente viene illustrato un metodo di azione Index che è stato contrassegnato con il filtro azione CachingFilter.

    <CachingFilter()> _
    Public Function Index()
        ' The action method logic.
    End Function
    

    [CachingFilter]
    public ActionResult Index()
    {
        // The action method logic.
    }
    
    

Aggiunte alla community

AGGIUNGI
Mostra:
© 2016 Microsoft