Ошибка 500 в ajax post. Ajax отсылает null data

Код частичного представления:

    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<h1>Registration</h1>
<form id="loginform">
    <input type="number" name="Id" value="0" id="ID"/><br />
    <p>Имя</p>
    <input type="text" name="Name" id="Name" /><br />
    <p>Ник</p>
    <input type="text" name="NickName" id="NickName" /><br />
    <p>Возраст</p>
    <input type="number" name="Age" id="Age" /><br />
    <p>Почта</p>
    <input type="text" name="Email" id="Email" /><br />
    <p>Пароль</p>
    <input type="text" name="Password" id="Password" /><br />
    <input type="submit" value="отправить" id="Submit" />
</form>

<script>
    $(document).ready(function () {
        $("#Submit").click(function (e) {
            e.preventDefault();
            var person = {
                Id: $("#ID").val(),
                Name: $("#Name").val(),
                Age: $("#Age").val(),
                NickName: $("#NickName").val(),
                Email: $("#Email").val(),
                Password: $("#Password").val(),
            }
            $.ajax({
                url: "/api/Test",
                type: "POST",
                data: JSON.stringify(person),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function () {
                    console.log("SUCCESS")
                },
                error: function (xhr, status, error) {
                    console.log(xhr.responseText + '|\n' + status + '|\n' + error);
                }
            })

        });
    });
</script>

Код контроллера api

[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
    Context db;
    public TestController(Context context)
    {
        db = context;
    }
    [HttpPost]
    public async Task<IActionResult> Registration([FromForm]User user)
    {
        if (ModelState.IsValid)
        {
            db.Users.Add(user);
            await db.SaveChangesAsync();
            return Ok(user);
        }
        return BadRequest(ModelState);
    }
}

Простая модель пользователя:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string NickName { get; set; }
    public string Email { get; set; }
    public int Age { get; set; }
    public string Password { get; set; }
}

Сам объект отправляется в контроллер, но все свойства = null (Id и Age = 0). Пробовал отсылать информацию разными способами. Но всегда выдает ошибку 500. Если убрать атрибут [FromForm], то выдает ошибку 400. Можно было бы обойтись без атрибутов [FromForm] и [FromBody]? Видел много рабочих примеров без них


Ответы (0 шт):