Différence entre OnActionExecuted et OnResultExecuting

Quelle est la différence entre OnActionExecuted et OnResultExecuting? Est-ce qu’ils sont tous deux renvoyés les uns après les autres une fois que l’action a été traitée ou que quelque chose se produit entre ces deux méthodes? Comme l’initialisation du View Engine, …

Ils ont un contexte différent.

OnActionExecuted a un ActionExecutedContext dans lequel vous pouvez voir le résultat produit par l’action. Vous pouvez également voir si l’action a rencontré une exception et voir si l’exception a été gérée.

OnResultExecuting a un ResultExecutingContext . Cette méthode est appelée juste avant que l’instance ActionResult soit appelée. Vous pouvez examiner le résultat de la méthode et éventuellement annuler l’exécution du résultat. Cela se traduira généralement par une réponse vide avec le code d’état 200. (vous ne pouvez pas faire cela dans la méthode OnActionExecuted).

À partir de la ActionFilterAtsortingbute.OnResultExecuting Method

Appelé par le framework ASP.NET MVC avant l’exécution du résultat de l’action.

De la ActionFilterAtsortingbute.OnActionExecuted Method

Appelé par le framework ASP.NET MVC après exécution de la méthode d’action.

Ils se font appeler les uns les autres.

Il ne peut y avoir d’initialisation, car ActionResult que vous exécutez peut ne pas générer de vue – ActionResults est libre de faire ce qu’il veut: renvoyer JSON, renvoyer un fichier, émettre une redirection, etc.