[英].NET5 JsonPatchDocument.ApplyTo throws when add or replace
[英]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.