ASP.NET CORE WEB API: [FROMBODY] Проверка не работает для [обязательных] свойствC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET CORE WEB API: [FROMBODY] Проверка не работает для [обязательных] свойств

Сообщение Anonymous »

У меня есть следующая конечная точка ASP.net Core Web API. Эта конечная точка автоматически генерируется через рабочий процесс, в котором используется определение типов, которое затем преобразуется в OpenAPI, а затем на сервер ASP.Net Core Web API с использованием CLI OpenAPI Generator. < /P>

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

// Written by hand
public override async Task MyMethod (
[FromRoute(Name = "someString"), Required] string someString,
[FromRoute(Name = "someInt"), Required] int someInt,
[FromBody] MyMethodRequest myRequest)
< /code>
MyMethodRequest
состоит только из объекта одного класса:

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

// Auto-generated
[Required]
[DataMember(Name="MyObject", EmitDefaultValue=false)]
public MyClass MyObject { get; set; }
< /code>
MyClass
имеет несколько свойств. Один из них-следующее: < /p>

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

// Auto-generated
[DataContract]
public partial class MyClass: IEquatable
{
[Required]
[DataMember(Name="someState", EmitDefaultValue=true)]
public int SomeState { get; set; }
}
< /code>
If I call the MyMethod
конечная точка API через http, я ожидаю, что она вернет результат Badrequest , если я оставлю требуемое какое -то свойство из запроса json.
Однако метод выполняется нормально, а SomeState инициализируется со значением по умолчанию 0. ModelState.isvalid - true . Объект состояния упоминает Somestring и expectint , но не атрибут MyRequest . Я даже не уверен, что MyRequest вообще проверяется.
Почему это? Я неправильно понимаю, как работает автоматическая проверка запросов в этом контексте? Вот почему я использую переопределение и необязательное имя . Атрибуты [требуется] из генератора.
Заранее спасибо за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/794 ... ed-propert
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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