You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.0迁移3.1时MvcJsonOptions类型加载失败如何解决

错误原因

ASP.NET Core 3.0+ 已将Newtonsoft.Json相关的序列化组件、Microsoft.AspNetCore.Mvc.MvcJsonOptions类型从核心框架中移除,改为独立分发的NuGet包,未安装对应包时就会抛出该类型加载错误。

解决方法
  • 安装匹配.NET Core 3.1版本的NuGet包 Microsoft.AspNetCore.Mvc.NewtonsoftJson,选择3.1.x的稳定版本即可。
  • 无需修改你现有服务注册代码,安装完成后清理解决方案的bin、obj缓存文件夹,重新编译运行即可解决问题。
  • 如果调整后仍然报错,可以在注册NewtonsoftJson之前先显式注册Mvc核心服务,调整后的代码如下:
services.AddControllersWithViews()
    .AddAuthorization()
    .AddApiExplorer()
    .AddMvcOptions(option => option.EnableEndpointRouting = false)
    .AddNewtonsoftJson(n =>
    {
        n.SerializerSettings.Converters.Add(new StringEnumConverter());
        n.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        n.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
    })
    .AddDataAnnotations();
注意事项

如果项目中原有单独引用的Microsoft.AspNetCore.Mvc.Formatters.Json包,请直接移除,该包的功能已经完全整合到Microsoft.AspNetCore.Mvc.NewtonsoftJson中,重复引用会导致类型冲突。

内容的提问来源于stack exchange,提问作者Chinnadurai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:09:02