繁体   English   中英

如何在 JsonPatchDocument.Applyto 中使用 ModelState

[英]How to use ModelState with JsonPatchDocument.Applyto

我在 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);
    }
}

您必须为 .Net Core 添加 Newtonsoft 包

Microsoft.AspNetCore.Mvc.NewtonsoftJson

dotnet add package Microsoft.AspNetCore.Mvc.NewtonsoftJson

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

Microsoft.AspNetCore.Mvc.NewtonsoftJson

你必须安装这个 NuGet 包:

Microsoft.AspNetCore.Mvc.NewtonsoftJson

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

services
    .AddControllersWithViews()
    .AddNewtonsoftJson();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM