ASPNET возвращает BadRequest, когда модель API, не допускающая значения NULL, указывает нулевое значениеC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 ASPNET возвращает BadRequest, когда модель API, не допускающая значения NULL, указывает нулевое значение

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


Просто интересно, есть ли способ, позволяющий веб-API ASP.NET автоматически не возвращать неверный ответ на запрос при попытке вызвать действие контроллера, имеющее модель со свойством, не допускающим значения NULL, которому присвоено значение NULL.
p>
Возьмем следующую модель:

Код: Выделить всё

public record TestModel
{
public string Name { get; set; } = "";
}
Мы используем FluentValidation и указали валидатор, который гарантирует, что имя свойства не является пустым (который включает в себя нулевой тест и проверен другими тестами только на валидаторе), с код ошибки:

Код: Выделить всё

RuleFor(model => model.Name)
.NotEmpty()
.WithErrorCode(ErrorConstants.NameCannotBeEmpty);
Затем мы вручную вызываем валидатор в контроллере, как это рекомендуется:

Код: Выделить всё

var result = await _postValidator.ValidateAsync(request);
if (!result.IsValid)
{
return GetValidationErrorResponse(result);
}
We then return a custom response object using GetValidationErrorResponse which contains the error code of the error. This will help us to display multi-lingual error messages, where we can lookup the error based on an error code.
We then have a set of tests we run, where we want to explicitly test for either "Name": "" or "Name": null.
When we call the test with "Name": "" the controller POST action is called, and the manual test of the fluent validator is called, which results in the BadRequest response containing the correct error code.
When we call the test "Name": null the controller POST action is not called, and it just returns the standard ASPNET BadRequest object, which states the name of the field but as it's not hitting the fluent validation check, and therefore not adding the error code into the response to be picked up by the front end.
I understand the nature of the non-nullable field would indicate that this should never be null, however that a dotnet centric thing, and I don't want to have to make the field nullable, when it shouldn't be.
But I want to be able to explicitly verify that a client that incorrectly passes a null value (which would be a valid JSON object) is still returned the appropriate error code as we've designed.
Is there a way to disable this automatic model validation within asp.net and explicitly rely only on our calls to the fluent validation methods?
Thanks,
Justin


Источник: https://stackoverflow.com/questions/781 ... null-value
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Синхронизация данных зависает, когда дата, допускающая значение NULL, равна NULL
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Почему строковое свойство должно быть объявлено как строка, допускающая значение NULL, в Entity Framework Core, когда со
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Проверка JSR @Pattern, допускающая нулевые значения
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Badrequest не возвращается, когда NULL отправляется
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Существует ли реализация алгоритма ATRPO, допускающая дискретные действия?
    Anonymous » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

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