第五章 模型绑定和数据验证
5.1 模型绑定基础
什么是模型绑定
模型绑定是ASP.NET Core的一个核心功能,它自动将HTTP请求数据(路由参数、查询字符串、表单数据、JSON等)映射到动作方法的参数或模型对象。模型绑定简化了从HTTP请求中提取数据的过程,让开发者能够直接使用强类型对象而非手动解析请求。
绑定源特性
ASP.NET Core提供了特性来明确指定数据应该从哪个源绑定:
| 特性 | 数据源 | 示例 | 
|---|---|---|
| [FromRoute] | 路由参数 | /api/products/{id} | 
| [FromQuery] | 查询字符串 | /api/products?category=electronics | 
| [FromBody] | 请求正文 | HTTP POST/PUT/PATCH的JSON或XML数据 | 
| [FromForm] | 表单数据 | 多部分表单数据或x-www-form-urlencoded | 
| [FromHeader] | HTTP头部 | Authorization: Bearer token | 
| [FromServices] | 服务容器(依赖注入) | 注入的服务 | 
5.2 模型验证
内置验证特性
ASP.NET Core提供了一组内置的验证特性,可用于验证模型:
| 特性 | 描述 | 示例 | 
|---|---|---|
| [Required] | 属性不能为null | [Required] | 
| [StringLength] | 字符串长度限制 | [StringLength(50, MinimumLength = 3)] | 
| [Range] | 数值范围限制 | [Range(1, 100)] | 
| [RegularExpression] | 正则表达式匹配 | [RegularExpression(@"^[A-Z]{2}\d{4}$")] | 
| [EmailAddress] | 电子邮件格式 | [EmailAddress] | 
| [Phone] | 电话号码格式 | [Phone] | 
| [Url] | URL格式 | [Url] | 
例如,为产品模型添加验证:
public class Product
{
    public int Id { get; set; }
    [Required]
    [StringLength(100, MinimumLength = 3)]
    public string Name { get; set; }
    [Required]
    [StringLength(500)]
    public string Description { get; set; }
    [Range(0.01, 10000)]
    public decimal Price { get; set; }
    [Range(0, 1000)]
    public int StockQuantity { get; set; }
    [Url]
    public string ImageUrl { get; set; }
}


                
            
        
浙公网安备 33010602011771号