Professional ASP.NET MVC 4
by Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen, Scott Hanselman
Binding Parameters
The discussion above about “body values” and “non-body values” leads us to discuss Formatters and Model Binders, since those two classes are responsible for handling bodies and non-body values, respectively. When you write an action method signature and include parameters, complex types come from “the body,” which really means that formatters are responsible for generating them; simple types, on the other handle, come from “not the body,” which means that model binders are responsible for generating them. For body content being sent, we use formatters to decode the data.
To tell the whole story, though, we need to rise up a level into a concept that is new to Web API: Parameter Binding. Web API uses parameter binders to determine how to provide values for individual parameters. Attributes can be used to influence that decision (like [ModelBinder], an attribute we've seen before with MVC), but the default logic uses the simple type vs. complex type logic when there are no overrides applied to influence the binding decision.
The parameter binding system looks to the action's parameters to find any attributes which derive from ParameterBindingAttribute. There are a few such attributes built into Web API, as shown in Table 11.1. In addition, you can register custom parameter binders which do not use model binding or formatters, either by registering them in the configuration or by writing your own ParameterBindingAttribute-based attributes.
Table 11.1 Parameter Binding ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access