Я иметь перечисление TestEnum, содержащее Test1 = 1, Test2 = 2, Test3 = 3.
В [HttpPost] или [HttpPut] с помощью [ FromBody], мой объект DTO правильно получает значение перечисления, даже если я передаю другое значение, например 5.
Однако в Get/Put используя [FromRoute], мой объект DTO правильно получает перечисление, когда введенные значения находятся в пределах предела перечисления (1, 2 или 3).
Если я При передаче 5 значение перечислителя становится нулевым, в отличие от [FromBody], который может нормально получать значение 5, даже если оно находится за пределами закодированных Test1, Test2 и Test3.
Код: Выделить всё
public enum TestEnum
{
Test1 = 1,
Test2 = 2,
Test3 = 3
}
Код: Выделить всё
[HttpPost]
public async Task Post([FromBody]TestCommand command)
Если выход за пределы диапазона, [FromRoute] получает ноль, а [FromBody] получает 5.
Код: Выделить всё
[HttpPut("{id:int}")]
public async Task Put([FromRoute]TestEnum id, [FromBody]TestCommand command)
Если значение [FromRoute] выходит за пределы диапазона, оно получает ноль.
Код: Выделить всё
[HttpGet("{id:int}")]
public async Task GetById([FromRoute]TestEnum id)
Подробнее здесь: https://stackoverflow.com/questions/574 ... n-net-core