ユーザーが電子メールのURL(登録確認URL)をクリックしたときに呼び出されるアクションメソッドVerifyNewUser()があります。
アクションメソッドは、ViewBagにboolプロパティを設定し、ユーザーを確認済みユーザーに更新してから、ユーザーが自動的にサインインしたホームページをロードします。/Home/Indexビューで、設定したプロパティのViewBagを確認します。 trueの場合、jqueryuiダイアログを表示します。
ただし、ViewBagがnullであり、スクリプトがスキップされます。メッセージをhomeController.ViewBagに保存しているので、これでうまくいくと思いました。おそらく、ViewBagなしでこれを行うためのより良い方法がありますか?
public ActionResult VerifyNewUser()
{
if(everything checks out)
{
HomeController homeController = new HomeController();
homeController.ViewBag.RegisterationLoad = true;
homeController.ViewBag.VerificationMessage = "Thank you! Your account has been activated";
return View("../Home/Index", null);
}
}
ホームコントローラーには特別なことは何もありません。
public ActionResult Index(){
return View();
}
ホームビューには、確認URLをクリックした後にホームページが読み込まれているかどうかを確認するコードがあり、jqueryuiダイアログが表示されます。
@if (ViewBag.RegistrationLoad == "true")
{
<script type="text/javascript">
$("<div></div>").html("<span>@ViewBag.VerificationMessage</span>").dialog({
width: 365, height: 165, minWidth: 365, minHeight: 165, maxWidth: 365, maxHeight: 165,
autoOpen: true, modal: true, dialogClass: 'noTitleDialog', position: "center",
buttons: {
"Ok": function () {
$(this).remove();
}
}
});
</script>
}
御時間ありがとうございます