. Net Core 3.1 API. Я прочитал множество тем, в которых спрашивается, почему ModelState.IsValid не работает должным образом. Большинство из них предназначены для веб-страниц, а не для API. А те, которые я нашел об API, либо не совсем применимы, либо не привели меня к пониманию.
У меня есть модель, которая выглядит так:
public class MyModel
{
[Required(ErrorMessage = "Prop1 is required.")]
public int Prop1 { get; set; }
public List<int> IntList { get; set; }
}
И я есть конечная точка API:
[ApiController]
[Route("api/[controller]")]
public class FooBarController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromBody] MyModel request)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
// do stuff
return Ok(results);
}
}
Теперь, в Postman, если я передаю это как тело, он работает, как ожидалось:
{ "Prop1": 1001}
Но если я передаю это, я ожидал будет выдана ошибка Prop1 is required.
:
{ "Prop2": 1001}
Однако ошибки нет. Модель все еще действительна, и я просто получаю пустой набор.