Проверка .NET Core [From Body] не работает для [требуемых] свойствC#

Место общения программистов C#
Anonymous
 Проверка .NET Core [From Body] не работает для [требуемых] свойств

Сообщение Anonymous »

У меня есть следующая конечная точка Webapi: < /p>

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

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

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

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

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

[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, если я оставлю необходимое свойство SomeState из запроса JSON. Тем не менее, метод выполняется нормально, а SomeState инициализируется со значением по умолчанию 0. ModelState.isvalid - true . Объект состояния упоминает Somestring и expectint , но не атрибут MyRequest . Я даже не уверен, что MyRequest вообще проверяется.
Почему это? Смогут ли я считать, как работает автоматическая проверка запросов в этом контексте? Вот почему я использую переопределение и необязательное имя свойство.
Заранее спасибо за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/794 ... properties

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