Currently MVC is still running the IActionConstraint implementations for features that we've already moved into the routing layer. This has a significant perf cost associated with, and so we want to skip it because it's redundant. However if anyone has implemented their own `IActionConstraint`-based features, they still need to just work. This change takes the approach of skipping the action constraint phase at runtime unless we see something 'unknown'. This is an all or nothing choice, and will run action constraints if **any** action constraint we don't special case exists. This is the most compatible behavior (running redundant constraints) when the application is using constraints that the developer implemented. Another approach I considered was to eliminate these constraints as part of the process of building ADs. I don't think that's ideal because people have written code that introspects action constraints. We should consider something like this in 3.0. |
||
|---|---|---|
| .. | ||
| ConsumesMatcherPolicyTest.cs | ||
| EndpointRoutingUrlHelperTest.cs | ||
| HttpMethodProviderAttributesTests.cs | ||
| KnownRouteValueConstraintTests.cs | ||
| RouteTemplateProviderAttributesTest.cs | ||
| UrlHelperBaseTest.cs | ||
| UrlHelperExtensionsTest.cs | ||
| UrlHelperTest.cs | ||
| UrlHelperTestBase.cs | ||