ASP.NET MVC : dans la classe ActionFilterAttribute, quelle est la différence entre OnActionExecuted et OnResultExecuted ? Lors de l'implémentation d'un filtre de compression, dans quelles méthodes le code de compression doit-il être placé ?
Réponses
Trop de publicités?Quelqu'un a quelque chose que vous pourriez trouver utile - regardez ça :
http://nraykov.wordpress.com/2009/12/02/asp-net-mvc-custom-compression-action-filter/
OnActionExecuted se produit après l'exécution de l'action. Je pense que c'est lorsque le contrôle a quitté la méthode. Le résultat de l'action qui est renvoyé est ensuite exécuté APRÈS la méthode d'action. Une vue, par exemple, n'est pas traitée dans la méthode, même si elle est renvoyée sous la forme "return View() ;" - elle est en fait traitée après le retour de la méthode d'action.
OnResultExecuted se produit lorsque la valeur de retour (IE le résultat de l'action) a été exécutée.
Pour mettre en œuvre un filtre d'action personnalisé, vous devez hériter de l'ActionFilterAttribute. Il s'agit d'une classe abstraite qui comporte quatre méthodes que vous pouvez remplacer :
OnActionExecuting OnActionExecuted OnResultExecuting OnResultExecuted Comme leur nom l'indique, une logique personnalisée peut être exécutée avant/après l'exécution d'une méthode d'action et avant/après l'exécution du résultat. Les filtres d'action ont une propriété Order qui spécifie l'ordre dans lequel le filtre est appliqué lorsque plusieurs filtres sont utilisés pour décorer une méthode d'action.