7

我在 Microsoft 文档和他们调用 JsonPatchDocument.ApplyTo(patchObject, ModelState) 的许多示例中看​​到,但我似乎无法让它以这种方式构建。我收到一个构建错误,提示“错误 CS1503 参数 2:无法从 'System.Web.Http.ModelBinding.ModelStateDictionary' 转换为 'System.Action'”

我引用的是 Microsoft.AspNetCore.JsonPatch v2.2.0,示例代码来自这里:

https://docs.microsoft.com/en-us/aspnet/core/web-api/jsonpatch?view=aspnetcore-2.2

[HttpPatch]
public IActionResult JsonPatchWithModelState(
    [FromBody] JsonPatchDocument<Customer> patchDoc)
{
    if (patchDoc != null)
    {
        var customer = CreateCustomer();

        patchDoc.ApplyTo(customer, ModelState);

        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        return new ObjectResult(customer);
    }
    else
    {
        return BadRequest(ModelState);
    }
}
4

3 回答 3

9

您必须为 .Net Core 添加 Newtonsoft 软件包

Microsoft.AspNetCore.Mvc.NewtonsoftJson

dotnet add package Microsoft.AspNetCore.Mvc.NewtonsoftJson
于 2020-02-25T13:01:30.933 回答
2

你必须安装这个 NuGet 包:

Microsoft.AspNetCore.Mvc.NewtonsoftJson

您还必须将这些方法调用添加到 Startup 类中的 ConfigureServices 方法:

services
    .AddControllersWithViews()
    .AddNewtonsoftJson();
于 2020-05-10T20:09:42.637 回答
1

我通过将以下 NuGet 包添加到我的项目中解决了这个问题:

Microsoft.AspNetCore.Mvc.NewtonsoftJson

于 2020-02-12T23:58:15.530 回答