导航

.Net Core下的model验证

Posted on 2019-09-16 13:16  杨彬Allen  阅读(806)  评论(0)    收藏  举报

手动实验,结果如下:

有效的有:

1、必填,Required(不仅仅是属性得有,且值不能为空)

2、长度,StringLength

3、正在表达式,RegularExpression

4、范围,Range

 

另外无效的有(以下两种待继续完善,应该是我理解有误)

1、BindRequired(号称只要有属性,值没有没关系),但是实验下来是不管有没有都验证不了。

2、ModelState(swagger检测下来,凡是能进来的,ModelState.IsValid都是true……进不来的,ModelState.IsValid也检测不到。

 

    public class ExpExpense
    {
        /// <summary>
        /// 费用报告名称
        /// </summary>
        /// <value>string</value>
        [Required]
        [StringLength(160, MinimumLength = 3)]
        [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")]
        public string ExpenseSubject { get; set; }

        /// <summary>
        /// 申请总金额
        /// </summary>
        [Range(10, 100, ErrorMessage = "金额只允许在10到100以内")]
        public decimal ApplyAmount { get; set; }
   }