2016-03-19 1 views
0

fondamentalement je cherche la comparaison entre OnActionExecuting et OnResultExecuting.ASP.Net MVC Action Filter: Quelle est la différence entre OnActionExecuting et OnResultExecuting concernant l'utilisation

quand nous devrions travailler avec OnActionExecuting et quand devrait fonctionner avec OnResultExecuting.

Si quelqu'un connaît la situation, alors partagez les connaissances. grâce

+0

http://stackoverflow.com/questions/20125196/difference-between-onactionexecuted-and-onresultexecuting –

+0

'OnActionExecuting' - exemple d'utilisation lorsque vous voulez avoir un filtre de localisation (traduction). 'OnResultExecuting' - utile pour effectuer la journalisation et la mise en cache de sortie (de msdn) –

+0

@MikeDebela une demande que si possible s'il vous plaît inclure un lien pertinent qui me montre dans quel genre de situation les gens utilisent OnResultExecuting et OnActionExecuting aussi. merci – Thomas

Répondre

1

De Filtering in ASP.NET MVC:

  • filtres d'action. Ils implémentent IActionFilter et enveloppent l'exécution de la méthode d'action. L'interface IActionFilter déclare deux méthodes: OnActionExecuting et OnActionExecuted. OnActionExecuting s'exécute avant la méthode d'action. OnActionExecuted s'exécute après la méthode d'action et peut effectuer un traitement supplémentaire, par exemple en fournissant des données supplémentaires à la méthode d'action, en inspectant la valeur de retour ou en annulant l'exécution de la méthode d'action.

  • Filtres de résultats. Ces implémentent IResultFilter et l'exécution de l'objet ActionResult. IResultFilter déclare deux méthodes: OnResultExecuting et OnResultExecuted. OnResultExecuting s'exécute avant que l'objet ActionResult soit exécuté. OnResultExecuted s'exécute après le résultat et peut effectuer un traitement supplémentaire du résultat, tel que la modification de la réponse HTTP. La classe OutputCacheAttribute est un exemple de filtre de résultat.

En bref, ce sont des événements de 2 différents types de filtres qui exécutent à des moments différents.

IActionFilter.OnActionExecuting exécute avant la méthode d'action. IResultFilter.OnResultExecuting exécute après la méthode d'action renvoie (c'est-à-dire appelle return View()), mais avant s'exécute ActionResult.

En langage clair: OnActionExecuting peut être utilisé pour intervenir avant l'exécution de la logique métier. OnResultExecuting peut être utilisé pour intervenir après l'exécution de la logique métier et avant l'exécution de la logique d'affichage.

+0

toute bonne écriture existe qui expliquent l'utilisation réelle de OnActionExecuting et OnResultExecuting et montrent également la différence en termes d'utilisation et de scénario. S'il vous plaît dites-moi un scénario où les gens doivent utiliser OnResultExecuting. Merci – Thomas