如何修复验证错误Netcore 2.2 Web API中的响应

时间:2019-03-29 17:20:49

标签: asp.net-core-2.2

我正在处理asp.netcore-2.2错误,但我仍从响应中获取ErrorMessage详细信息

我有一个登录和注册方法,其中包含用于8到4个字符的注册所需的用户名,密码和密码长度,问题是我收到了预期的或针对该登录方法处理的错误消息,并且在以下情况下收到验证错误:我用空的用户名和密码注册。

我在ConfigureApiBehaviorOptions中添加了以下代码:

options.SuppressModelStateInvalidFilter = true;

这也是我尝试过的选项:

options.SuppressUseValidationProblemDetailsForInvalidModelStateResponses = true;

但是它不起作用。

这是我的注册DTO:

using System.ComponentModel.DataAnnotations;

namespace DatingApp.Api.Dtos
{
    public class UserForRegisterDto
    {
        [Required]
        public string Username { get; set; }
        [Required]
        [StringLength(8, MinimumLength= 4, ErrorMessage= "password between 4 and 8 charracters")]
        public string Password { get; set; }
    }
}

我希望看到此错误消息:

  

“ 4至8个字符之间的密码”

但是我在更改ConfigureApiBehaviorOptions之前就已经知道了:

  

“标题”:“发生一个或多个验证错误。”,   “状态”:400,   “ traceId”:“ 0HLJIO56EGJEV:00000001”

,如果我使用ConfigureApiBehaviorOptions,则会显示完整的表格,其中包含错误详细信息。

1 个答案:

答案 0 :(得分:0)

  public class UserForRegisterDto
    {
        [Required(ErrorMessage = "username is required")]
        public string Username { get; set; }
        [Required(ErrorMessage = "password is required")]
        [StringLength(8, MinimumLength= 4, ErrorMessage= "password between 4 and 8 charracters")]
        public string Password { get; set; }
    }

我只是为必填字段添加错误消息。