Example of simple method in an API controller for showing invalid posted model state.
[HttpPost("create")]
public ActionResult<MyModel> Create([FromBody] MyModel model)
{
ValidateIncomingModel();
return myBusiness.Create(model);
}
private void ValidateIncomingModel()
{
if (!ControllerContext.ModelState.IsValid)
{
var errors = ControllerContext.ModelState.Keys
.SelectMany(key => ControllerContext.ModelState[key].Errors
.Select(x => key + ": " + x.ErrorMessage));
var message = string.Join("\n", errors);
throw new Exception($"Not valid incoming model\n {message}");
}
}
[HttpPost("create")]
public ActionResult<MyModel> Create([FromBody] MyModel model)
{
ValidateIncomingModel();
return myBusiness.Create(model);
}
private void ValidateIncomingModel()
{
if (!ControllerContext.ModelState.IsValid)
{
var errors = ControllerContext.ModelState.Keys
.SelectMany(key => ControllerContext.ModelState[key].Errors
.Select(x => key + ": " + x.ErrorMessage));
var message = string.Join("\n", errors);
throw new Exception($"Not valid incoming model\n {message}");
}
}
[HttpPost("create")] public ActionResult<MyModel> Create([FromBody] MyModel model) { ValidateIncomingModel(); return myBusiness.Create(model); } private void ValidateIncomingModel() { if (!ControllerContext.ModelState.IsValid) { var errors = ControllerContext.ModelState.Keys .SelectMany(key => ControllerContext.ModelState[key].Errors .Select(x => key + ": " + x.ErrorMessage)); var message = string.Join("\n", errors); throw new Exception($"Not valid incoming model\n {message}"); } }