什么是C#ASP.NET WebAPI中的参数绑定?

绑定是在Web API调用控制器操作方法时为参数设置值的过程。

Web API方法具有不同类型的参数以及如何自定义绑定过程。

如果参数是int,bool,double等简单类型,则Web API会尝试从URI(从路由数据或查询字符串)获取值。

如果参数是Customer,Employee等复杂类型,则Web API框架会尝试从请求正文中获取值。

我们可以使用[FromBody]和[FromUri]属性来更改参数绑定过程的默认行为。

FromUri -

如果参数是简单类型,则Web Api尝试从URI中获取值

.NET原始类型,例如double,DateTime,GUID字符串,可以从String类型转换为任何类型

示例

public Student Get(int id){}

发件人

如果参数类型为Complex类型,则Web Api将尝试绑定消息正文中的值。

示例

Public Student Post(Employee employee){}

[FromUri]

要强制Web API从URI读取复杂类型,请将[FromUri]属性添加到参数

使用[FromUri]属性强制Web Api从QueryString获取复杂类型的值。

示例

public Student Get([FromUri] Employee employee)
public HttpResponseMessage Get([FromUri] Employee employee) { ... }

[发件人]

使用[FromBody]属性从请求正文中获取基本类型的值,与默认值相反

不可以,单个操作不允许使用多个FormBody。

要强制Web API从请求正文中读取简单类型,请添加[FromBody]

在此示例中,Web API将使用媒体类型格式化程序从请求正文中读取name的值

示例

public Student Post([FromBody] string name]){...}
public HttpResponseMessage Post([FromBody] string name) { ... }