
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
What is Parameter Binding in C# ASP.NET Web API
Binding is a process to set values for the parameters when Web API calls a controller action method.
Web API methods with the different types of the parameters and how to customize the binding process.
If the parameter is a simple type like int, bool, double, etc., Web API tries to get the value from the URI (Either from route data or from the Query String)
if the parameter is a complex type like Customer, Employee, etc., then the Web API Framework tries to get the value from the request body.
We can change this default behavior of the parameter binding process by using [FromBody] and [FromUri] attributes.
FromUri −
If the parameter is of simple type, then web Api tries to get the value from the URI
.NET Primitive type like double,DateTime,GUID string any type which can e converted from the String type
Example
public Student Get(int id){}
FromBody
If the parameter of type Complex type, then Web Api will try to bind the values from the message body.
Example
Public Student Post(Employee employee){}
[FromUri]
To force Web API to read a complex type from the URI, add the [FromUri] attribute to the parameter
Use [FromUri] attribute to force Web Api to get the value of Complex type from QueryString.
Example
public Student Get([FromUri] Employee employee) public HttpResponseMessage Get([FromUri] Employee employee) { ... }
[FromBody]
Use [FromBody] attribute to get the value of Primitive type from the request body, opposite to the default values
No, multiple FormBody is not allowed in a single action.
To force Web API to read a simple type from the request body, add the [FromBody]
In this example, Web API will use a media-type formatter to read the value of name from the request body
Example
public Student Post([FromBody] string name]){...} public HttpResponseMessage Post([FromBody] string name) { ... }