Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Gewusst wie: Erstellen eines benutzerdefinierten Aktionsfilters

Ein Aktionsfilter besteht aus einer Logik, die direkt vor oder direkt nach einer Aktionsmethode ausgeführt wird. Sie können Aktionsfilter zur Protokollierung, Authentifizierung, zum Ausgabecaching oder für andere Aufgaben verwenden.

Implementieren Sie einen Aktionsfilter als Attribut, das von der ActionFilterAttribute-Klasse erbt. Überschreiben Sie die OnActionExecuting-Methode, wenn die Logik vor der Aktionsmethode ausgeführt werden soll. Überschreiben Sie die OnActionExecuted-Methode, wenn die Logik nach der Aktionsmethode ausgeführt werden soll. Nachdem Definieren eines Aktionsfilters können Sie beliebige Aktionsmethoden, auf die Sie den Filter anwenden möchten, mit dem Attribut kennzeichnen.

In diesem Thema wird beschrieben, wie Sie einen Aktionsfilter erstellen und das Attribut zum Kennzeichnen einer oder mehrerer Aktionsmethoden verwenden.

So erstellen Sie einen Aktionsfilter

  1. Öffnen Sie in Visual Studio das MVC-Anwendungsprojekt, dem Sie den Aktionsfilter hinzufügen möchten.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Controllers, klicken Sie auf Hinzufügen und anschließend auf Neues Element.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  3. Wählen Sie unter Vorlagen die Vorlage Klasse aus.

  4. Geben Sie im Feld Name den Namen der Aktionsfilterattributklasse ein, die Sie erstellen.

    HinweisHinweis:

    Gemäß der Konvention sollte der Name des Aktionsfilterattributs auf "Attribute" enden, z. B. LogFilterAttribute oder OutputFilterAttribute.

  5. Klicken Sie auf Hinzufügen.

    Die Klasse wird dem Projekt hinzugefügt.

  6. Fügen Sie in der neuen Klasse Code hinzu, sodass die Klasse von der ActionFilterAttribute-Klasse erbt, wie im folgenden Beispiel gezeigt:

    Public Class CachingFilterAttribute
        Inherits ActionFilterAttribute
    

    public class CachingFilterAttribute : ActionFilterAttribute
    
  7. Wenn der Filter direkt vor einer Aktionsmethode ausgeführt werden soll, überschreiben Sie die OnActionExecuting-Methode, und fügen Sie die gewünschte Logik hinzu.

    Das folgende Beispiel zeigt ein Skelett der Methode OnActionExecuting.

    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. Wenn der Filter direkt nach einer Aktionsmethode ausgeführt werden soll, überschreiben Sie die OnActionExecuted-Methode, und fügen Sie die gewünschte Logik hinzu.

    Das folgende Beispiel zeigt ein Skelett der Methode OnActionExecuted.

    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. Fügen Sie das Filterattribut in Controllerklassen jeder Aktionsmethode hinzu, auf die Sie den Filter anwenden möchten.

    Das folgende Beispiel zeigt eine Index-Aktionsmethode, die mit dem Aktionsfilter CachingFilter gekennzeichnet wurde.

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

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

Community-Beiträge

HINZUFÜGEN
Anzeigen: