При наличии синтаксической ошибки / неправильно сформированной полезной нагрузки связыватель модели не заполняет параметр input
. Учитывая это, вы можете проверить на input == null
. Если требования объекта не выполнены, ModelState.IsValid
вернет false
, и вы можете вернуть HTTP 422 соответственно.
Пример кода:
public class MyObj
{
[Required]
public string Foo { get; set; }
}
[HttpPost]
public IActionResult Post([FromBody]MyObj obj)
{
if (obj == null)
{
return BadRequest();
}
if (!ModelState.IsValid)
{
return UnprocessableEntity(ModelState);
}
return Ok();
}
При публикации недопустимой / неправильно сформированной полезной нагрузки obj
будет null
и будет возвращен неверный запрос (HTTP 400). Когда полезная нагрузка соответствует JSON, но свойство Foo
равно null
, ModelState.IsValid
вернет false
, что приведет к HTTP 422 с ошибками привязки проверки. Когда все хорошо, он вернет 200.