C# ASP.NET WebAPI 中的参数绑定是什么?
csharpserver side programmingprogramming更新于 2025/10/1 18:22:17
绑定是指 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) { ... }

