9
votes

MVC 3 GlobalFilters excluent

J'ai un filtre qui souhaite s'appliquer à tous les contrôleurs, à l'exception d'une. J'essaie donc d'écrire quelque chose qui ressemble à ceci: XXX

Essayer de lire via Post de Brad sur le sujet est Gibberish pour moi

http://bradwilson.typepad.com/blog/2010/07/service-location- pt4-filters.html

Je suppose que cela est possible que la bibliothèque ci-dessous semble le faire, mais je voudrais éviter d'ajouter une dépendance si possible.

http://www.codeproject.com/kb/aspnet/fluentfltrsaspnetmvc3.aspx

En espérant que quelqu'un l'a déjà fait et il est facile de faire ...

Merci pour toute aide.

Mise à jour

Phil Haack vient de poster comment aborder ce scénario.

http://haacked.com/archive/2011/04/25/conditionnemental-filters.aspx


0 commentaires

4 Réponses :


2
votes

Vous ne pouvez pas exclure des filtres globaux. Si vous souhaitez que les contrôleurs soient exclus, utilisez des filtres standard.


2 commentaires

OK, alors il y a-t-il un moyen facile d'appliquer un filtre à tous sauf un contrôleur? Déposer à travers le nouveau filtreProvider ...


Vous pouvez avoir tous les contrôleurs que vous souhaitez avoir le filtre appliqué pour dériver à partir d'un contrôleur de base commun.



2
votes

Je pense que vous devrez mettre en place un fournisseur de filtres pour le faire, puis lorsque vous implémentez GetFilters n'applique pas le filtre pour l'action que vous souhaitez exclure. Voici un exemple:

http://www.dotnetcurry.com/showarticle.aspx?id=578 < / a>


0 commentaires

32
votes

Je cherche sur le Web pour la même question sans chance, donc je viens d'essayer cela moi-même et ça marche: xxx

puis, lorsque vous souhaitez désactiver le filtre mondial, il suffit d'ajouter L'attribut à l'action avec la propérienne désactivée définie sur true: xxx

espère que cette aide


4 commentaires

Solution incroyable et rapide! :RÉ


U R Z 1. Cependant, j'ai trouvé de nombreuses autres réponses, mais cela reste la réponse la plus simple et la plus efficace du monde entier.


C'est aussi mon approche préférée


Un petit "gotcha" que j'ai remarqué ici - si vous spécifiez une commande dans la Déclaration globale du filtre, vous devez également spécifier le même ordre sur l'attribut. Par exemple [dataaccessatribute (désactiver = true, ordre = 2)] et filtres.add (nouveau dataaccessattribute (), 2);