IActionConstraint follows a provider model similar to filters. The attributes that go on actions/controllers can be simple metadata markers, the 'real' constraint is provided by a set of configurable providers. In general the simplest thing to do is to be both an IActionConstraintMetadata and IActionConstraint, and then the default provider will take care of you. IActionConstraint now has stages based on the Order property. Each group of constraints with the same Order will run together on the set of actions. This process is repeated for each value of Order until we run out of actions or run out of constraints. The IActionConstraint interface is beefier than the equivalent in legacy MVC. This is to support cooperative coding between sets of constraints that know about each other. See the changes in the sample, which implement webapi-style overloading. |
||
|---|---|---|
| .. | ||
| MvcSample.Web | ||