как принять объект с UI на API

мой UI это React/Redux API - .NET Core 6, не MVC

с UI я отправляю объект:

const obj={id:account.id, email:email,idRoles: idRoles,password: password,isActive: isAccountActive}
const formSubmit = (e) => {
    e.preventDefault()
    dispatch(adminActions.changeAccount(obj));
    props.onSubmit(e.target.value);
};
account: {id: 1, email: "[email protected]", idRoles: [1, 3], password: "12345", isActive: true}

мой контроллер:

[HttpPut]
        [Authorize(Roles = "Admin")]
        [Route("change")]
        public ActionResult<AccountForAdminView> Change([FromBody] ChangeAccountForm form)
        {
            return accountService.Change(form).ToAdminView();
        }

когда я выполняю запрос, ChangeAccountForm у меня пустой

что можно сделать с этим?


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

Автор решения: Andrei Brizhak
  1. Если вы используете архитектуру ASP.NET Core MVC, то создайте, в проекте на .NET 6, класс описывающий вашу Модель из

account: {id: 1, email: "[email protected]", idRoles: [1, 3], password: "12345", isActive: true}

 

  1. Укажите явно в вашем UI с помощью кода на Razor, в первой строке кода ссылку на модель, добавляя перед ней знак @. Далее, ваш тип метода, название контроллера и метод в который передаются данные.

<form method="put" asp-controller="Название контроллера" asp-action="Change">            
       // какая то логика
</form>

Вот здесь код, для ASP.NET Core MVC на .NET 5, там же ссылка на видео. Так что можете наводить красоту на React, но если решили подружить его с .NET Core, то придется разобраться, как он работает.

→ Ссылка