Почему в [HttpPatch] не получается изменить данные поля?

Рейтинг: 1Ответов: 0Опубликовано: 16.02.2023

Создаю простое 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();

Почему на сервер не приходят мои данные с измененной почтой? Как это исправить?

Ответы

Ответов пока нет.