绑定是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如果参数类型为complex类型,那么web api会尝试绑定来自的值消息正文。
示例public student post(employee employee){}
[fromuri]要强制 web api 从 uri 读取复杂类型,请添加 [fromuri] 属性到参数
使用[fromuri]属性强制web api从以下位置获取complex类型的值查询字符串。
示例public student get([fromuri] employee employee)public httpresponsemessage get([fromuri] employee employee) { ... }
[frombody]使用[frombody]属性从请求体中获取primitive类型的值,与默认值相反
不,单个操作中不允许使用多个 formbody。
要强制 web api 从请求正文中读取简单类型,请添加 [frombody]
在此示例中,web api 将使用媒体类型格式化程序来读取 name 的值来自请求正文
示例public student post([frombody] string name]){...}public httpresponsemessage post([frombody] string name) { ... }
以上就是c# asp.net webapi 中的参数绑定是什么?的详细内容。