官方地址
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)