升级到 3.1 后,ASP.NET Core 未绑定主体中的参数

Tho*_*rge 3 c# asp.net-core json-serialization

我刚刚将 ASP.NET Core 项目从 2.2 升级到 3.1,现在我的模型绑定不适用于 POST 请求。我读到默认的 JSON 序列化器在 .NET Core 3 中从 Newtonsoft.JSON 更改为 System.Text.Json。这可能是原因吗?

我的动作和课程看起来像这样

[HttpPost]
public IActionResult Foo([FromBody]Bar req)
Run Code Online (Sandbox Code Playgroud)
public class Bar
{
    public string Fiz;
    public int Buzz;
}
Run Code Online (Sandbox Code Playgroud)

Min*_*ata 5

我只是想指出,如果修改模型不适合您,那么您可以重新添加 JSON.NET 支持。

只需安装以下 nuget 包:

Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
Run Code Online (Sandbox Code Playgroud)

然后在您添加MVC的startup.cs中,执行以下操作:

services.AddMvc().AddNewtonsoftJson();
Run Code Online (Sandbox Code Playgroud)

然后您又回到使用 JSON.NET,它是用于 .NET Core 2.X 项目的序列化器。

https://dotnetcoretutorials.com/2019/12/19/using-newtonsoft-json-in-net-core-3-projects/