如何防止ASP.NET Core在空请求主体上将模型状态标记为无效?

Col*_*nee 4 c# asp.net-core

我有一个从请求主体接收参数的动作。客户端使用二进制格式使用此API,该格式可能会将请求模型序列化为空主体。

如果我用空的请求正文敲击这些动作之一,则该动作将使用null请求模型的默认值(即)来调用,但是模型状态被标记为无效。通常这是可以的,但是如果模型状态无效,我有一个中间件会响应并显示错误。

有什么方法可以使ASP.NET Core更优雅地处理空的请求主体,并且不将模型状态标记为无效?

Col*_*nee 5

在搜寻ASP.NET Core源代码之后,我发现它MvcOptions具有一个属性来控制此行为:

services.AddMvc()
    .AddMvcOptions(o => o.AllowEmptyInputInBodyModelBinding = true);
Run Code Online (Sandbox Code Playgroud)