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){}

FromBody

如果参数为复杂类型,则 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]

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

否,不允许在一个操作中使用多个 FormBody。

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

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

示例

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

更新于: 2020-08-19

2K+ 阅读量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告