新しい電子メールがすぐに電子メールを送信しようとしている場合、どうすればいいですか? 以下のコードは、ConfirmEmail
メソッドのものです。コードを実行すると、Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
が表示されます。await UserManager.SendEmailAsync(userId, "API", "API Code is: " + user.ApiCode);
非同期メソッドから電子メールを送信
私はUserManager.FindById
が何も返されていないとは思っていません。
すべてのポインタ/アイデアが役に立ちます。あなたは私が推測する提供情報で
public async Task<ActionResult> ConfirmEmail(string userId, string code)
{
if (userId == null || code == null)
{
return View("Error");
}
var result = await UserManager.ConfirmEmailAsync(userId, code);
var user = UserManager.FindById(User.Identity.GetUserId());
await UserManager.SendEmailAsync(userId, "API", "API Code is: " + user.ApiCode);
return View(result.Succeeded ? "ConfirmEmail" : "Error");
}
私の推測では、Userはまだ認証されていないので、User.Identityはnullなので、NullReferenceExceptionです。あなたはvar user = UserManager.FindById(userId)を試しましたか?代わりに? –
あなたがデバッグした – Adrian
を使用する前に 'user'がヌルかどうかチェックしていませんか?ユーザーサインインプロセスはどのように実装しましたか?独自のMembershipProvider実装を使用していますか? – jmesolomon