Я получаю несогласованное поведение, когда ядро API asp.net проверяет объекты и когда я вручную добавляю ошибки модели и вызываю BadRequest (ModelState)
В качестве примера, у меня есть эти 2 конечные точки в моем контроллере
[HttpPost]
public IActionResult Post(MyModel model)
{
return Ok();
}
[HttpPost]
[Route("test")]
public IActionResult OtherPost()
{
ModelState.AddModelError("field", "error");
return BadRequest(ModelState);
}
и MyModel:
public class MyModel
{
[Required]
[MinLength(10)]
public string MyProperty { get; set; }
}
Когда я вызываю первую конечную точку с пустым телом, мне не нужно проверять ModelState, потому что фреймворк собирается сделать это автоматически и выдает такой ответ:
{
"errors":{"MyProperty":["The MyProperty field is required."]},
"title":"One or more validation errors occurred.",
"status":400,
"traceId":"80000005-0000-ff00-b63f-84710c7967bb"
}
Со вторым контроллером я получаю это:
{"field":["error"]}
Я использую неправильный метод для добавления ошибок в ModelState или это известная проблема?