环境:net core 6.0


    1. {
    2. "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    3. "title": "One or more validation errors occurred.",
    4. "status": 400,
    5. "traceId": "00-f9886bc314d3f33bcac578535b805c9e-03150913ab03b15c-00",
    6. "errors": {
    7. "Id": [
    8. "ID不能为空"
    9. ],
    10. "Name": [
    11. "请输入流程名称"
    12. ],
    13. "Update_UserID": [
    14. "更新人ID"
    15. ]
    16. }
    17. }
    1. public class UpdateWorkFlow
    2. {
    3. /// <summary>
    4. /// Id
    5. /// </summary>
    6. ///
    7. [Display(Name = "ID")]
    8. [Required(ErrorMessage = "{0}不能为空")]
    9. [StringLength(36, ErrorMessage = "{0} 长度36.")]
    10. public string Id { get; set; }
    11. /// <summary>
    12. /// 流程名称
    13. /// </summary>
    14. ///
    15. [Display(Name = "流程名称")]
    16. [Required(ErrorMessage = "请输入{0}")]
    17. [StringLength(50, ErrorMessage = "{0} 长度1到50之间.", MinimumLength = 1)]
    18. public string Name { get; set; }
    19. /// <summary>
    20. /// 状态(默认) 0 启用,1禁用
    21. /// </summary>
    22. ///
    23. [Display(Name = "状态")]
    24. [Required(ErrorMessage = "请输入{0}")]
    25. [Range(0, 1, ErrorMessage = "{0} 范围值0或者1")]
    26. public uint Status { get; set; } = 0;
    27. /// <summary>
    28. /// 审批流程说明
    29. /// </summary>
    30. public string? Remark { get; set; }
    31. /// <summary>
    32. /// 最后更新人ID
    33. /// </summary>
    34. ///
    35. [Display(Name = "更新人ID")]
    36. [Required(ErrorMessage = "{0}")]
    37. [StringLength(20, ErrorMessage = "{0} 长度3到20之间.", MinimumLength = 3)]
    38. public string? Update_UserID { get; set; }
    39. }
    1. using System.ComponentModel;

    1. {
    2. "statusCode": 500,
    3. "info": "参数不完整或不正确",
    4. "data": "ID不能为空|请输入流程名称|更新人ID"
    5. }
    1. public class ModelValidateActionFilter : ActionFilterAttribute
    2. {
    3. public override void OnActionExecuting(ActionExecutingContext context)
    4. {
    5. if (!context.ModelState.IsValid)
    6. {
    7. //获取验证失败的模型字段
    8. var errors = context.ModelState
    9. .Where(e => e.Value.Errors.Count > 0)
    10. .Select(e => e.Value.Errors.First().ErrorMessage)
    11. .ToList();
    12. var str = string.Join("|", errors);
    13. //设置返回内容
    14. var result = new ApiResultMsg()
    15. {
    16. StatusCode = (int)ApiStatusCodeEnum.Error,
    17. Data = str,
    18. Info = ApiStatusCodeEnum.ParameterError.GetEnumText()
    19. };
    20. //返回200状态码
    21. context.Result = new JsonResult(result);
    22. //返回400状态码
    23. //context.Result = new BadRequestObjectResult(result);
    24. }
    25. }
    26. }
    1. #region 关闭模型验证
    2. builder.Services.Configure<ApiBehaviorOptions>(opt => opt.SuppressModelStateInvalidFilter = true);
    3. builder.Services.AddControllers(opt =>
    4. {
    5. //添加过滤器
    6. opt.Filters.Add(typeof(ModelValidateActionFilter));
    7. });
    8. #endregion