【问题标题】:How to fix validation errors Response in Netcore 2.2 Web API如何修复 Net Core 2.2 Web API 中的验证错误响应
【发布时间】:2019-03-29 17:20:49
【问题描述】:

我正在处理 asp.netcore-2.2 错误,但我仍然从 Response 获取 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 之前得到了这个:

"title": "出现一个或多个验证错误。", “状态”:400, "traceId": "0HLJIO56EGJEV:00000001"

如果我使用ConfigureApiBehaviorOptions,还有一个带有错误详细信息的完整表格。

【问题讨论】:

    标签: asp.net-core-2.2


    【解决方案1】:
      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; }
        }
    

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

    【讨论】:

    • 注释不会使“发生一个或多个验证错误”。离开。但是,响应具有如下所示的错误字段 { "errors": { "Username": [ "username is required" ]}, "title": "One or more validation errors occurred.", "status": 400, " traceId": "0HM4INHKS81G6:00000001" }
    猜你喜欢
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2020-01-26
    • 2019-08-06
    • 1970-01-01
    相关资源
    最近更新 更多