猿问

如何在ASP.NET Core 2.0 Web API中配置和使用Microsoft

我正在ASP.NET Web API控制器中创建HTTP Partial方法,并阅读了有关如何实现HTTP Partial方法的文档http://benfoster.io/blog/aspnet-core-json-patch-partial-api-updates在控制器中。当我点击HTTP Partial端点时出现异常

这是我在控制器中的Patch方法的代码:


[HttpPatch("{userId}")]

public IActionResult Patch([FromRoute(Name = "userId")]Guid userId, [FromBody] JsonPatchDocument<User> userProperties)

{

    var indexOfUserToPartiallyUpdate = UsersInMemory.List.FindIndex(user => user.Id == userId);


    if (indexOfUserToPartiallyUpdate == -1)

    {

        return BadRequest($"user with {userId} not found.");

    }


    var originalUser = UsersInMemory.List[indexOfUserToPartiallyUpdate];


    userProperties.ApplyTo(UsersInMemory.List[indexOfUserToPartiallyUpdate], ModelState);


    if (!ModelState.IsValid)

    {  

        return new BadRequestObjectResult(ModelState);

    }


    var model = new

    {

        beforePatch = originalUser,

        afterPatch = UsersInMemory.List[indexOfUserToPartiallyUpdate]

    };


    return Ok(model);

}

这是我在HTTP PATCH请求中通过邮递员发送的JSON正文:

http://img.mukewang.com/60a9ff650001c72910050396.jpg

我觉得我需要在Startup.cs文件中做一些事情,例如配置JsonPatchDocument,但我不知道如何做。任何帮助深表感谢。


精慕HU
浏览 163回答 1
1回答

呼如林

我想我找到了您的问题:“请注意,即使您只发送一个操作,我们也会始终发送一系列操作。”尝试在以下位置更改您的请求:[&nbsp; {&nbsp; &nbsp; "op": "replace",&nbsp; &nbsp; "path": "/email",&nbsp; &nbsp; "value": "THIS_SOME_OTHER_EMAIL@gmail.com"&nbsp; }]
随时随地看视频慕课网APP
我要回答