迁移到.Net Core 3后JsonPatchDocument为空

2024-03-20

我有一个包含多个补丁操作的 AspNetCore-WebApi-Project,它在 Core 2.2 上运行良好。迁移到 Core 3 后[FromBody] JsonPatchDocument<T>一片空白。我的获取/发布方法仍然按预期运行。

这是我的启动的一部分:

    services.AddDbContext<MyContext>(options => options
                    .UseLazyLoadingProxies()
                    .UseNpgsql(Configuration.GetConnectionString("MyConnectionString"), 
                        opt => opt.UseNodaTime()));

    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new OpenApiInfo { Title = "My-API", Version = "v1" });
    });
    services.AddControllers()
        .AddNewtonsoftJson();

这是我的行动:

[HttpPatch("{id}")]
public async Task<IActionResult> Patch(Guid id, 
                            [FromBody] JsonPatchDocument<MyViewModel> patchDocument)
{
    await this.service.HandlePatchAsync(id, patchDocument);
    return NoContent();
}

这是正文内容:

[   
    {
        "op": "replace",
        "path": "/name",
        "value": "New Name" 
    },
    {
        "op": "replace",
        "path": "/country",
        "value": "Germany" 
    }
]

有谁知道这里出了什么问题吗?


我遇到了类似的问题。我本来打算摆脱Newtonsoft根本没有,但在这种情况下,补丁JsonPatchDocument没有工作。

根据你应该:

  1. 添加包引用Microsoft.AspNetCore.Mvc.NewtonsoftJson

  2. 更改启动中的代码,将 MVC 添加到services.AddMvc().AddNewtonsoftJson();

你已经完成了第二步,但是第一步呢? 这对我有帮助。

不幸的是,我不知道如何让 JsonPatchDocument 在没有.AddNewtonsoftJson()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迁移到.Net Core 3后JsonPatchDocument为空 的相关文章

随机推荐