【发布时间】:2021-05-16 13:31:47
【问题描述】:
我无法创建用户。进程正常运行,向用户读取数据,重定向到主页/索引,但数据库中没有新用户。 我在 DbSeeder 中有相同的代码,并且在那里正确创建了用户。
[HttpPost]
public async Task<IActionResult> Create(WorkerVM model)
{
if (ModelState.IsValid)
{
var user = await _userManager.FindByNameAsync(model.Username);
if (user == null)
{
user = new User()
{
FirstName = model.FirstName,
LastName = model.LastName,
Email = model.Username,
UserName = model.Username
};
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await _userManager.AddToRoleAsync(user, "Worker");
}
return RedirectToAction("Index", "Home");
}
}
ModelState.AddModelError("", "Registration Failed");
return View();
}
【问题讨论】:
-
ReturnRedirectToAction 应该在 if (result.Succeeded) 语句中。在 if 语句之外,如果用户创建不成功,您将返回视图以留在页面上。在您的操作方法上放置一个调试器以查看问题所在
-
您的创建代码似乎是正确的,因为@Qudus 提到重定向应该在结果成功内完成,否则您应该返回
Page()
标签: entity-framework asp.net-core .net-core entity-framework-core asp.net-identity