虽然学习主要以webapi为主,但是还是把MVC几个绑定特性说一下
在 ASP.NET Core MVC 中,支持以下表单类型的模型绑定。
[FromHeader],[FromQuery],[FromRoute],[FromForm]
public IActionResult CreatePerson([FromForm]Person person){ return Ok(person);
}
除了预设的三种Binding 来源外,还可以通过Model Binding Attributes 从HTTP Request 的其他数据中Binding。有以下6 种:
- [FromHeader]
从HTTP Header取值。 - [FromForm]
通过HTTP POST的form取值。 - [FromRoute]
是通过MVC Route URL取值。 - [FromQuery]
是通过URL Query参数取值。 - [FromBody]
从HTTP Body取值,通常用于取JSON, XML。 -
[FromServices]
这个比较特别,不是从HTTP Request取值,而是从DI容器取值。
DI预设是使用Constructor Injection,但Controller可能会因为每个Action用到不一样的Service导致很多参数,所以也可以在Action注入Service。