According to https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-reference-types, nullable reference types are for static code analysis. However, if the ASP.NET Core Web API has Nullable enabled (default), the ModelState validation will fail. For example:
public MyClass{ public string Name {get;set;}}
The IDE shows the CS8610 warning for sure.
If the Web API client function POST the MyClass object without assigning Name, the Web API will give 400 bad request, as if Name is decorated with RequiredAttribute.
If I alter csproj and remove Nullable, the validation is OK.
I am not sure if this is a bug in ASP.NET Core Web API, or I have missed something?