Почему в [HttpPatch] не получается изменить данные поля?
Создаю простое CRUD приложение.
На этапе обновления данных пользователя не могу получить обновленные данные.
[HttpPatch("{id}")]
public async Task<ActionResult<User>> UpdateUser(int id, [FromBody] JsonPatchDocument<User> userData)
{
var userToUpdate = await _context.Users.FindAsync(id);
if (userToUpdate == null) return NotFound();
if (userData != null)
{
userData.ApplyTo(userToUpdate);
await _context.SaveChangesAsync();
return Ok(userToUpdate);
}
return BadRequest();
}
Так например, я хочу изменить почту пользователя и отправляю в userData:
[
{
"email": "asya@gmail.com"
}
]
Но на сервер приходит:
[
{
"path": null,
"op": null
}
]
И я получаю ошибку:
System.ArgumentNullException: Value cannot be null. (Parameter 'path')
В Program.cs у меня добавлен пакет Microsoft.AspNetCore.Mvc.NewtonsoftJson
builder.Services.AddControllers()
.AddNewtonsoftJson();
Почему на сервер не приходят мои данные с измененной почтой? Как это исправить?
Источник: Stack Overflow на русском