Как исправить ошибки проверки Ответ в Netcore 2.2 Web API

Я обрабатываю ошибки asp.netcore-2.2, но все еще получаю сведения об ErrorMessage из Response

У меня есть методы входа и регистрации с требуемым именем пользователя, паролем и необходимой длиной пароля для регистрации от 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": "Произошла одна или несколько ошибок проверки.", "status": 400, "traceId": "0HLJIO56EGJEV:00000001"

и полная таблица с подробностями ошибок, если я использую ConfigureApiBehaviorOptions.


person evo    schedule 29.03.2019    source источник


Ответы (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; }
    }

я просто добавляю сообщение об ошибке для обязательных полей.

person Razmik Ghookas    schedule 29.03.2019
comment
Аннотации не делают Произошла одна или несколько ошибок проверки. Уходите. Однако в ответе есть поле ошибок, как указано ниже {ошибки: {имя пользователя: [имя пользователя требуется]}, заголовок: произошла одна или несколько ошибок проверки., статус: 400, traceId: 0HM4INHKS81G6:00000001} - person Abdul Aleem Khan; 27.11.2020