Я создаю страницу Razor, но она OnPostAsyn c возвращает HTTP 400, а GET в порядке.
Когда пользователь нажимает кнопку «Создать пользователя», он отправляет запрос на публикацию на текущую страницу, но возвращает HTTP 400.
Страница бритвы:
@page
@model MySite.CreateUserModel
@{
ViewData["Title"] = "Create user";
Layout = "/Views/Shared/_Layout.cshtml";
}
<h1>@ViewData["Title"]</h1>
<div>
<form method="post">
...
<button type="submit" class="btn btn-primary">Create user</button>
</form>
</div>
Модель страницы бритвы:
namespace MySite
{
public class CreateUserModel : PageModel
{
...
public async Task<IActionResult> OnPostAsync()
{
if(ModelState.IsValid)
{
IdentityUser identityUser =
new IdentityUser()
{
UserName = Input.Email,
Email = Input.Email,
PhoneNumber = Input.Phone,
EmailConfirmed = Input.EmailConfirmed,
PhoneNumberConfirmed = Input.PhoneConfirmed,
TwoFactorEnabled = Input.TwoFactorAuthentication
};
IdentityResult result = await _userManager.CreateAsync(identityUser,
Input.Password);
if(result.Succeeded)
{
_logger.LogInformation("A new user with password is created");
return Redirect("/Administrator/UserManagement");
}
foreach(IdentityError error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
}
return Page();
}
}
}