1

verwendet werden soll Nach diesem Dokument https://docs.microsoft.com/en-ca/aspnet/core/mvc/controllers/filters#result-filters wird der Ergebnisfilter nach dem Aktionsfilter ausgeführt.Wann Ergebnisfilter in ASP.NET-Kern MVC

Meine Frage: Was sind die Unterschiede zwischen der Implementierung von OnActionExecuted von ActionFilter und OnResultExecuting von ResultFilter, da ich keine Ausnahme behandeln möchte? Es sieht so aus, als ob der ActionFilter es mir erlaubt, die Ausnahme zu behandeln und den ExceptionFilter zu überspringen.

Das Beispiel im Dokument war nicht klar darüber, wie man zwischen Aktionsfilter oder Ergebnisfilter wählen sollte.

Könnten Sie bitte ein Beispiel geben, wenn der Ergebnisfilter besser ist als der Aktionsfilter?

+0

Mögliche Duplikat https://stackoverflow.com/questions/22187076/iactionfilter-vs-iresultfilter –

+0

@PradeepKumar Die SO Ihr gab, ist für den Faden alter ASP.NET MVC. Ist das Verhalten für ASP.NET-Core identisch? – LxL

Antwort

2

Aktion filtert implementieren entweder die IActionFilter oder IAsyncActionFilter-Schnittstelle und deren Ausführung umgibt die Durchführung von Aktionsmethoden. Aktionsfilter enthalten eine Logik, die vor und nach dem Ausführen einer Controller-Aktion ausgeführt wird.

Ergebnis Filter implementieren entweder die IResultFilter oder IAsyncResultFilter-Schnittstelle und deren Ausführung umgibt die Ausführung der Aktion führt. Ergebnisfilter enthalten eine Logik, die vor und nach der Ausführung eines Ansichtsergebnisses ausgeführt wird.

Action des OnActionExecuted und ResultFilter der OnResultExecuting

  • Action des OnActionExecuted: Es heißt nur, nachdem die Aktion-Methode aufgerufen wird. (Zum Beispiel: - tun einige Logik, nachdem die Aktion Ansicht Datenänderung führt)

  • ResultFilter des OnResultExecuting: Es genannt wird, kurz bevor das Ergebnis ausgeführt wird; es bedeutet, bevor die Ansicht gerendert wird. (Zum Beispiel: - tun einige Logik vor Ergebnis Modifikation Ansicht.)

+0

Was verhindert, dass Sie die Logik in OnResultExecuting auf OnActionExecuted anwenden? – LxL

+0

Stellen Sie sich vor, Sie haben ein Szenario wie dieses - FirstAction> SecondAction> View. In diesem Fall, wenn Sie nach dem Abschluss von FirstAction eine allgemeine Logik einfügen möchten, kann diese in OnActionExecuted eingefügt werden. – Sanket

Verwandte Themen