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

时间:2018-12-17 20:40:07

标签: c# asp.net-core

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

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

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

1 个答案:

答案 0 :(得分:3)

浏览ASP.NET Core源代码后,我发现MvcOptions具有控制此行为的属性:

services.AddMvc()
    .AddMvcOptions(o => o.AllowEmptyInputInBodyModelBinding = true);