ここに私の登録方法があります。私は登録メソッドを管理ツールに変更しました。管理ツールはif文なしで正常に動作します。しかし、それは私が既存のユーザーを探しているようには好きではありません。コントローラに既にユーザが存在するかどうかを確認するにはどうすればよいですか?
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
if(_context.Users.Contains(model.UserName))//Errors out here
{
var user = new ApplicationUser { UserName = model.UserName};
user.UserName = model.UserName;
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await this.UserManager.AddToRoleAsync(user.Id, model.Name);
return RedirectToAction("Index","User");
}
AddErrors(result);
}
}
return View(model);
}
私はその素敵なアプリケーションエラーを与える前にユーザーを追加しようとしたので、私はかなりそれを試そうとしていました – Skullomania
@Skullomania - そうすべきではありませんが、もしそうなら、あなたは例外を捕まえることができました。それが例外をスローしている場合は、それを引き起こしている問題を修正し、回避する必要はありません。 –
私は回避策としてこの例を使用していません。私はエラーを処理するためにそれを使用しています。このエラーは、重複したユーザーによって発生しています。一意の名前で新しいユーザーを追加するとエラーは発生しません – Skullomania