Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

Asp.net core 尝试调用.Net Core 3.1 Web API上的修补程序终结点时出现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 :

在尝试调用Web API(.Net Core 3.1)上的修补程序终结点时,我收到了一个400错误请求,我不知道为什么。我的操作方法如下所示:

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
}