ASP.NET Core中Model绑定

官方地址

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)

 

原文地址:https://www.cnblogs.com/-zzc/p/14584146.html