官方地址
https://docs.microsoft.com/zh-cn/aspnet/core/mvc/models/model-binding?view=aspnetcore-5.0
使用
基本获取
//地址: localhost:5000/Home/2?DogsOnly=true //获取id和DogsOnly [HttpGet("{id}")] public ActionResult GetById(int id, bool dogsOnly)
[FromQuery]
-从查询字符串获取值。
//地址: localhost:5000/Home/GetById?pageNumber=1&query=埃及 //获取pageNumber和query public IActionResult GetById([FromQuery]int pageNumber,string query)
[FromRoute] -从路由数据中获取值。
//地址: localhost:5000/api/Home/GetById/123 //获取id public IActionResult GetById([FromRoute]int id)
[FromForm] -从已发布的表单字段中获取值。
//从form表单中获取数据 public IActionResult Privacy([FromForm]User user)
[FromBody] -从请求正文中获取值。
可以使用postman发送post请求,将数据放在body中。
public IActionResult CreateUser([FromBody] User user)
[FromHeader] -从 HTTP 标头中获取值。
//获取浏览器中Request Headers的Accept-Encoding public IActionResult GetById([FromHeader(Name = "Accept-Encoding")] string acceptEncoding)
[FromService] -从依赖注入容器中获取类型的实例,可用来替代构造函数那种依赖注入;构造函数那种是全局注入,这种用来局部注入。
public IConfiguration _configuration; public HomeController(IConfiguration configuration) {
//全局使用依赖注入 _configuration = configuration; } //局部使用依赖注入 public IActionResult GetIocService([FromServices] IConfiguration configuration)
[Bind] -指定模型绑定中应包含的模型属性
public class User { public AnotherUser AnotherUser { get; set; } } public class AnotherUser { public string UserName { get; set; } public string Sex { get; set; } } //使用它可以绑定指定、或者嵌套的类型 public IActionResult Privacy([Bind("AnotherUser")] User user)
[BindRquired] -必须绑定;如果无法对模型属性进行绑定,则会导致模型绑定添加模型状态错误
[BindNever] -不进行绑定,与[BindRquired]相反
批量数据绑定
public IActionResult List(List<string> string list)