-
Notifications
You must be signed in to change notification settings - Fork 85
Conditional bindings for filters
Pieter Jansen van Vuuren edited this page Jan 19, 2015
·
6 revisions
Usually, a filter is applied to a few actions. With the MVC3 extension for Ninject this is done by adding a condition to the filter binding. The available overloads of When
are a bit different than for other Ninject bindings. Below you find examples of the available When
overloads.
```text // LogFilter is applied to controllers that have the LogAttribute this.BindFilter<LogFilter>(FilterScope.Controller, 0) .WhenControllerHas<LogAttribute>() .WithConstructorArgument("logLevel", Level.Info); // LogFilter is applied to actions that have the LogAttribute this.BindFilter<LogFilter>(FilterScope.Action, 0) .WhenActionHas<LogAttribute>() .WithConstructorArgument("logLevel", Level.Info); // LogFilter is applied to all actions of the HomeController this.BindFilter<LogFilter>(FilterScope.Action, 0) .WhenControllerTypeIs<HomeController>() .WithConstructorArgument("logLevel", Level.Info); // LogFilter is applied to all Index actions this.BindFilter(FilterScope.Action, 0) .When((controllerContext, actionDescriptor) => actionDescriptor.ActionName == "Index") .WithConstructorArgument("logLevel", Level.Info); ```
Further Information on this topic: