C# - ModelState необходим в текущей версии веб-API C#?C#

Место общения программистов C#
Ответить
Гость
 C# - ModelState необходим в текущей версии веб-API C#?

Сообщение Гость »


Я отправляю на свой сервер POST со следующими данными:

{ «идентификатор»: 0, «usuarioId»: 35, "titulo": "Тестирование", "описание": "", «доблесть»: 1.11, "vencimento": "111111-11-11" } Свойство истечения срока действия — это поле даты в DTO, которое является маршрутом POST.

публичный класс DespesaDTO { общественный ИНТ Id {получить; набор; } общественный ИНТ UsuarioId {получить; набор; } // Chave estrangeira для обычного пользователя общедоступная строка? Название {получить; набор; } общедоступная строка? Описание {получить; набор; } общественная двойная доблесть {получить; набор; } [Столбец(TypeName="Дата")] общественный DateTime Vencimento {получить; набор; } общественный DateTime CreatedAt {get; набор; } общественный DateTime UpdatedAt {get; набор; } } Мой контроллер выглядит следующим образом:

[HttpPost] общедоступная асинхронная задача Post (модель DespesaDTO) { пытаться { Despesa despesa = _mapper.Map(модель); Usuario usuario = await _unitOfWork.UsuarioRepository.GetByIdAsync(x => x.Id == model.UsuarioId); если (usuario == ноль) { return NotFound("Обычная информация не существует!"); } despesa.UsuarioId = usuario.Id; Console.WriteLine("TEST 2" + Despesa); _unitOfWork.DepesaRepository.Add(despesa); дождитесь _unitOfWork.CommitAsync(); Результат DespesaDTO = _mapper.Map(despesa); вернуть ОК (результат); } поймать (Исключение ex) { выдать новое исключение (ex.Message); } } Я получаю ошибку:
{ "заголовки": { "нормализованные имена": {}, «ленивое обновление»: ноль }, "статус": 400, "statusText": "Неверный запрос", "url": "http://localhost:5241/api/v1/despesa/", «ок»: ложь, "name": "HttpErrorResponse", "message": "Ответ об ошибке HTTP для http://localhost:5241/api/v1/despesa/: 400 неверный запрос", "ошибка": { "тип": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "Произошла одна или несколько ошибок проверки.", "статус": 400, "traceId": "00-239d1c05419ba94750eb48062e2509a6-91bebea55feef9cc-00", "ошибки": { "модель": [ «Поле модели обязательно». ], "$.vencimento": [ «Не удалось преобразовать значение JSON в System.DateTime. Путь: $.vencimento | LineNumber: 0 | BytePositionInLine: 102». ] } } } Судя по тому, что я видел, ошибка возникает, потому что отправляемое не проверяется в моем DTO, например, формат даты в части ГОД отправляет 5 алгоритмов, но он должен содержать только 4. Я хотел бы знать если можно обработать эту ошибку, оставить ее по умолчанию, потому что при ошибке в параметре запроса он выбрасывает это количество свойств в мой объект, если, возможно, можно было бы стандартизировать его, чтобы оно было просто < /п> ошибка: { сообщение: "текст" }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»