Asp.net core 尝试调用.Net Core 3.1 Web API上的修补程序终结点时出现400错误请求错误
在尝试调用Web API(.Net Core 3.1)上的修补程序终结点时,我收到了一个400错误请求,我不知道为什么。我的操作方法如下所示:Asp.net core 尝试调用.Net Core 3.1 Web API上的修补程序终结点时出现400错误请求错误,asp.net-core,asp.net-core-3.1,http-status-code-400,webapi,http-patch,Asp.net Core,Asp.net Core 3.1,Http Status Code 400,Webapi,Http Patch,在尝试调用Web API(.Net Core 3.1)上的修补程序终结点时,我收到了一个400错误请求,我不知道为什么。我的操作方法如下所示: using Microsoft.AspNetCore.JsonPatch; namespace PropWorx.API.Controllers { [Route("api/[controller]")] [ApiController] public class OwnersController :
using Microsoft.AspNetCore.JsonPatch;
namespace PropWorx.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class OwnersController : ControllerBase
[HttpPatch("{id:int}")]
public async Task<ActionResult<Owner>> PatchOwner([FromRoute] int id, [FromBody] JsonPatchDocument<Owner> patchDoc)
{
if (patchDoc == null)
return BadRequest(ModelState);
var owner = await _context.Owners.FindAsync(id);
if (owner == null)
{
return NotFound();
}
patchDoc.ApplyTo(owner, ModelState);
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
await _context.SaveChangesAsync();
return new ObjectResult(owner);
}
}
}
(我还尝试了字符串“10764”而不是整数)
(请参见下图)
PropertyInspected是一个可为空的整数,并且肯定在模型中并且拼写正确。
在API的action方法执行第一行代码之前,我立即得到400错误响应
有什么想法吗?根据@CodeCaster的评论,问题在于JSON补丁是一个数组。我是通过邮递员的单一实体发送的。CodeCaster提供给我的这个链接上的一个用户也有同样的问题:你读到错误了吗?JSON补丁是一个数组。谢谢CodeCaster。这确实是问题所在。为了回答您的问题,我确实阅读了错误,但错误只是说“发生了一个或多个验证错误”。我没有看到有人提到这个问题,因为它不是一个数组。再次感谢CodeCaster,是的,这确实帮助了我。我真的用谷歌搜索了这个问题,但遗憾的是我没有看到你发给我的页面。我不知道我怎么会错过那一页。。。但无论如何,谢谢你。它正在工作
{
"Op": "replace",
"Path": "/PropertyInspectId",
"Value": 10764
}