首页 > 解决方案 > 如何防止 ASP.NET Core 在空请求主体上将模型状态标记为无效?

问题描述

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

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

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

标签: c#asp.net-core

解决方案


在搜索 ASP.NET Core 源代码后,我发现MvcOptions有一个属性可以控制这种行为:

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

推荐阅读