この質問へのフォローアップとして、TempData に何が起こっているのか疑問に思っています。
シナリオ 1:
- ユーザーのログイン
- ユーザーがメールアドレスを提供
- ユーザーは検証コードが記載された電子メールを受け取ります
- ユーザーが検証 URL をクリックする
- ユーザーが検証されます
- Validate アクションで設定された TempData を介して成功メッセージが表示されます。
シナリオ 2:
- ユーザーのログイン
- ユーザーがメールアドレスを提供
- ユーザーのログアウト/タイムアウト
- ユーザーは検証コードが記載された電子メールを受け取ります
- ユーザーが検証 URL をクリックする
- ユーザーが検証されます
- Validate アクションで設定された TempData を介して成功メッセージが表示されない
現在、ユーザーがログインして検証する理由がわかりません。シナリオ 1 では、"Success" メッセージを TempData に入れ、RedirectToAction("Index") を返します。インデックス アクションには AuthorizeAttribute があります。ログインしていない場合は、ログイン画面 (別のコントローラー) にリダイレクトされます。
ログイン画面にメッセージを表示したいのですが、このシナリオでは TempData がクリアされているように見えます。TempData ライフサイクルを誤解していますか? 同じコントローラ内のリクエストにのみ適用されますか?