2010-03-18 5 views
12

J'ai deux ActionFilters personnalisés sur une action.Arrêt de la continuation de ASP.NET MVC ActionFilter

Dans le premier des filtres d'action, j'ai une redirection effectuée si une condition n'est pas remplie (autorisation classique). Et dans un autre, j'ai une redirection effectuée si une autre condition n'est pas remplie (par exemple, vérification de rôle).

Mais je ne veux pas passer au second actionFilter si le premier n'est pas rencontré. Comment faire ça?

+0

Cette [réponse] (https://stackoverflow.com/a/9842910/2460971) sur une question similaire va plus en détail. – numaroth

Répondre

21

La définition de la propriété filterContext.Result sur une valeur non nulle arrêtera l'exécution des filtres ultérieurs. Donc, si votre premier filtre définit filterContext.Result = new RedirectResult(...), le second filtre et la méthode d'action ne seront jamais exécutés. C'est ainsi que fonctionne le filtre intégré [Authorization].

+7

Je devais juste retourner dans un projet MVC2, donc en laissant ceci ici au cas où quelqu'un en aurait encore besoin: Si vous voulez la fonctionnalité normale de 'return null' dans votre Action, vous pouvez faire' filterContext.Result = new EmptyResult() –

Questions connexes