core swagger 参数验证

1.FileTypeDto实体类添加属性 Required


        /// <summary>
        /// 分类名称
        /// </summary>
        [Required(ErrorMessage = "分类名称不能为空")]
        public string TypeName { get; set; }

        //参数验证示例
        /*
        [ValidateNever]:指示属性或参数应从验证中排除。
        [CreditCard]:验证属性是否具有信用卡格式。
        [Compare]:验证模型中的两个属性是否匹配。
        [EmailAddress]:验证属性是否具有电子邮件格式。
        [Phone]:验证属性是否具有电话号码格式。
        [Range]:验证属性值是否在指定的范围内。
        [RegularExpression]:验证属性值是否与指定的正则表达式匹配。
        [Required]:验证字段是否不为 null。
        [StringLength]:验证字符串属性值是否不超过指定长度限制。
        [URL]:验证属性是否具有 URL 格式。
        [Remote]:通过在服务器上调用操作方法来验证客户端上的输入。 
         */
        //[Required(ErrorMessage = "检测日期不能为空")]
        //[StringLength(10, ErrorMessage = "名字长度不能超过10个字符!")]
        //[Phone(ErrorMessage = "手机格式错误!")]

2.Controller写法


        [HttpPost]
        [AuthorizeFilter]
        public async Task<TData<string>> SaveForm([FromBody] FileTypeDto dto)
        {
            return await fileTypeBLL.SaveForm(new TransExp<FileTypeDto, FileTypeEntity>().Trans(dto));
        }

3.AuthorizeFilter过滤器写法,重写OnActionExecution方法,增加参数校验

        /// <summary>
        /// 异步接口日志
        /// </summary>
        /// <param name="context"></param>
        /// <param name="next"></param>
        /// <returns></returns>
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            #region 参数校验
            System.Collections.Generic.List<string> errors = context.ModelState
                     .Values
                     .SelectMany(x => x.Errors
                         .Select(p => p.ErrorMessage))
                     .ToList();
            if(errors.Count()>0)
            {
                // 统一返回格式
                TData<string> result = new TData<string>()
                {
                    Message = errors.FirstOrDefault()
                };
                context.Result = new JsonResult(result);
                return;
            }
            #endregion

4.最终效果

posted @ 2024-06-03 11:28  0Behavior  阅读(9)  评论(0编辑  收藏  举报