Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Comment : créer un filtre d'action personnalisé
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source

Comment : créer un filtre d'action personnalisé

.NET Framework 4

Un filtre d'action se compose d'une logique s'exécutant directement avant ou après une méthode d'action. Vous pouvez utiliser des filtres d'action pour la journalisation, l'authentification, la mise en cache de sortie ou d'autres tâches.

Vous implémentez un filtre d'action en tant qu'attribut héritant de la classe ActionFilterAttribute. Vous substituez la méthode OnActionExecuting si vous voulez que votre logique s'exécute avant la méthode d'action. Vous substituez la méthode OnActionExecuted si vous voulez que votre logique s'exécute après la méthode d'action. Après avoir défini un filtre d'action, vous pouvez utiliser l'attribut pour marquer les méthodes d'action auxquelles le filtre doit s'appliquer.

Cette rubrique explique comment créer un filtre d'action et utiliser l'attribut pour marquer une ou plusieurs méthodes d'action.

Pour créer un filtre d'action

  1. Dans Visual Studio, ouvrez le projet d'application MVC auquel vous souhaitez ajouter le filtre d'action.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier Controllers, puis cliquez sur Ajouter et sur Nouvel élément.

    La boîte de dialogue Ajouter un nouvel élément s'affiche.

  3. Sous Modèles, sélectionnez le modèle Classe.

  4. Dans la zone Nom, entrez le nom de la classe d'attributs de filtre d'action que vous créez.

    RemarqueRemarque

    Par convention, le nom de votre attribut de filtre d'action doit se terminer par « Attribute » (par exemple, LogFilterAttribute ou OutputFilterAttribute).

  5. Cliquez sur Ajouter.

    La classe est ajoutée à votre projet.

  6. Dans la nouvelle classe, ajoutez le code afin qu'il hérite de la classe ActionFilterAttribute, comme indiqué dans l'exemple suivant :

    Public Class CachingFilterAttribute
        Inherits ActionFilterAttribute
    

    public class CachingFilterAttribute : ActionFilterAttribute
    
  7. Si vous souhaitez que le filtre s'exécute directement avant une méthode d'action, substituez la méthode OnActionExecuting et ajoutez votre logique.

    L'exemple suivant présente une méthode OnActionExecuting squelette.

    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. Si vous souhaitez que le filtre s'exécute directement après une méthode d'action, substituez la méthode OnActionExecuted et ajoutez votre logique.

    L'exemple suivant présente une méthode OnActionExecuted squelette.

    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. Dans les classes de contrôleur, ajoutez l'attribut de filtre aux méthodes d'action auxquelles le filtre doit s'appliquer.

    L'exemple suivant présente une méthode d'action Index marquée avec le filtre d'action CachingFilter.

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

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

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft