Reputation: 51
If you have this enum :
public enum MyEnum
{
Value1,
Value2
}
And this Request :
{
"myEnum" : "WrongValue",
"name" : "MyName"
}
In the controller :
public async Task<ActionResult> RequestAsync(
[FromBody] MyRequest myRequest)
{
}
myRequest is null.
But if you use ;
{
"myEnum" : "Value1",
"name" : "MyName"
}
It is not null.
Upvotes: 2
Views: 236
Reputation: 795
Yes correct when invalid Enum value passed to model, you will receive entire request model as null
but we can leverage Microsoft.AspNetCore.Mvc.ModelState
to check whether request model is valid or not
public async Task<ActionResult> RequestAsync(MyRequest myRequest)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// api implementation ...
}
this will return error from ModelState
for invalid enum property in response as below
{
"myRequest": [
"The myRequest field is required."
],
"$.Protocol": [
"The JSON value could not be converted to Namespace.MyEnum. Path: $.Protocol | LineNumber: X | BytePositionInLine: XX."
]
}
Upvotes: 0