Получить ErrorMessage из ответа в Netcore 2.2 Web API - PullRequest
0 голосов
/ 05 января 2019

Я вызываю метод Register с пустым именем пользователя и паролем. Итак, я получил этот результат:

{
    "errors": {
        "Password": [
            "The Password field is required.",
            "Password length is between 4 and 8."
        ],
        "Username": [
            "The Username field is required."
        ]
    },
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "0HLJIO56EGJEV:00000001"
}

Мой Dto:

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

Я хочу получить атрибут ошибки только из ответа. Что мне делать?

1 Ответ

0 голосов
/ 05 января 2019

Это новая функция в ASP.NET Core 2.2:

IActionResult, возвращающий код состояния ошибки клиента (4xx), теперь возвращает тело ProblemDetails.

Документы описывают, что это можно отключить при вызове AddMvc внутри ConfigureServices, например:

services.AddMvc()
    .SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
    .ConfigureApiBehaviorOptions(options =>
    {
        options.SuppressUseValidationProblemDetailsForInvalidModelStateResponses = true;
    });

Это приведет к поведению до 2.2, которое будет сериализовать только ошибки.

...