什么是C#ASP.NET WebAPI中的参数绑定?
绑定是在WebAPI调用控制器操作方法时为参数设置值的过程。
WebAPI方法具有不同类型的参数以及如何自定义绑定过程。
如果参数是int,bool,double等简单类型,则WebAPI会尝试从URI(从路由数据或查询字符串)获取值。
如果参数是Customer,Employee等复杂类型,则WebAPI框架会尝试从请求正文中获取值。
我们可以使用[FromBody]和[FromUri]属性来更改参数绑定过程的默认行为。
FromUri-
如果参数是简单类型,则WebApi尝试从URI中获取值
.NET原始类型,例如double,DateTime,GUID字符串,可以从String类型转换为任何类型
示例
public Student Get(int id){}
发件人
如果参数类型为Complex类型,则WebApi将尝试绑定消息正文中的值。
示例
Public Student Post(Employee employee){}
[FromUri]
要强制WebAPI从URI读取复杂类型,请将[FromUri]属性添加到参数
使用[FromUri]属性强制WebApi从QueryString获取复杂类型的值。
示例
public Student Get([FromUri] Employee employee) public HttpResponseMessage Get([FromUri] Employee employee) { ... }
[发件人]
使用[FromBody]属性从请求正文中获取基本类型的值,与默认值相反
不可以,单个操作不允许使用多个FormBody。
要强制WebAPI从请求正文中读取简单类型,请添加[FromBody]
在此示例中,WebAPI将使用媒体类型格式化程序从请求正文中读取name的值
示例
public Student Post([FromBody] string name]){...} public HttpResponseMessage Post([FromBody] string name) { ... }