Model Binding
Model Binding 允许我们用 HTTP 请求里的数据来创建 C# 对象,这个对象就是 Action 方法的参数。
可以使用以下类型用来 Model Binding:
- int,string 等简单类型
- 复杂类型对象
- 数组
示例:
将 localhost/Albums/Detail/3
绑定到 AlbumController 的 Details(int id) 方法。
Model Binder
Model Binding 主要依赖于 Model Binder。Model Binder 从 HTTP 请求的不同部分寻找参数,并将其组合绑定到 Action 的参数。
Model Binder 默认寻找范围:
- Form 表单提交的值
- 路由的值
-
Binding Attributes
通过 Binding Attributes 自定义绑定。
Bind:有选择的绑定属性
- BindNever:指定属性不需要绑定
- BindRequired:指定属性必须绑定
示例:使用 Bind 仅绑定 UserName 和 Email 属性,其他属性都是默认值:
指定 Binding 来源
- FromBody:Request Bodys
- FromQuery:QueryStrings
- FromHeader:Request Headers
- FromRoute
- FromForm
示例:
public ActionResult List(
[FromQuery] int id,
[FromHeader(Name = "Accept")] string accept)
{
...
}