ASP.NET Core 3.X后出现 [The JSON value could not be converted to System.Nullable] 错误

今天出现了一个好奇怪的错误,之前没有见过,错误来源 ASP.NET Core Post 提交,前端 提交的是一个复杂对象,后端接收不到数据。
Controller接收数据如下:
public async Task<IActionResult> Add(AddModel model)
{
...
return Ok();
}


解决方案如下:
出现如上的错误,是因为从ASP.NET Core 3.0开始,默认使用了微软内置的JSON序列化和反序列化类库:System.Text.Json,此类库中并没有像Json.NET中实现这些特殊数据类型的JSON转换,所以如果遇到这个问题:

可以手动安装Json.NET这替换System.Text.Json这个内置的JSON序列化类库;

或者在包管理控制台输入如下命令:

Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson

或者在项目中右键,选择:管理NuGet程序包,搜索:Microsoft.AspNetCore.Mvc.NewtonsoftJson点击安装即可;

然后修改Startup.cs的服务注册,如下:

services.AddControllers().AddNewtonsoftJson();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容