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: Essayer de lire via Post de Brad sur le sujet est Gibberish pour moi p> http://bradwilson.typepad.com/blog/2010/07/service-location- pt4-filters.html p> 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. P> http://www.codeproject.com/kb/aspnet/fluentfltrsaspnetmvc3.aspx p> En espérant que quelqu'un l'a déjà fait et il est facile de faire ... p> Merci pour toute aide. P> Phil Haack vient de poster comment aborder ce scénario. P> http://haacked.com/archive/2011/04/25/conditionnemental-filters.aspx p> p> Mise à jour H2>
4 Réponses :
Vous ne pouvez pas exclure des filtres globaux. Si vous souhaitez que les contrôleurs soient exclus, utilisez des filtres standard. P>
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.
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: p>
http://www.dotnetcurry.com/showarticle.aspx?id=578 < / a> p>
Je cherche sur le Web pour la même question sans chance, donc je viens d'essayer cela moi-même et ça marche: 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: p> espère que cette aide p> p>
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)] code> et
filtres.add (nouveau dataaccessattribute (), 2); code>
Mise en œuvre IfilterProvider n'est pas si compliquée. Voir l'échantillon complet qui utilise la facilité de fournisseur pour exclure un filtre par type: