MVCアプリケーションを作成しました。ユーザーは登録する必要があり、それが完了したら、「ありがとう」ページにリダイレクトします。ただし、このメッセージをポップアップでユーザーに表示したいだけです。どうすればこれを達成できますか?
私のコード:
[HttpPost]
public ActionResult Enquiry(Enquiry enquiry)
{
if (ModelState.IsValid)
{
dbEntities.Enquiries.AddObject(enquiry);
dbEntities.SaveChanges();
enquiry.SendEnquiryEmail(enquiry);
return RedirectToAction("Thankyou");
}
return View(enquiry);
}
//redirect to thankyou page
public ActionResult Thankyou()
{
return View();
}
@Reynolds
あなたの答えは完璧です。
Razorでは、次の行を置き換えることができます
alert("@TempData[alertMessage]");
以下によって
alert('@TempData["alertMessage"]');
PS。引用に注意してください
ビューの「アラート」が意図した場合(ThankYouメソッドからのリダイレクト)にのみ表示され、誰かが誤って「ThankYou」ビューに移動した場合に表示されないようにするため
//redirect to thankyou page
public ActionResult Thankyou()
{
TempData["alertMessage"] = "Whatever you want to alert the user with";
return View();
}
次に、「ありがとう」ビューで次のようにします。
if(null != TempData["alertMessage"])
{
<script type="text/javascript">
alert("@TempData[alertMessage]");
</script>
}
これにより、通常のJavaScriptと同じようにスクリプトが書き出されます。お役に立てれば!
コントローラでこのコードを使用します
public ActionResult Edit(CoverLetterModel model)
{
TempData["msg"] = "<script>alert('Change succesfully');</script>";
}
ビューでこのコードを使用
@Html.Raw(TempData["msg"])
ユーザーが登録データを入力するビューに「ありがとう」メッセージボックスを表示したいようです。
その場合は、AJAX POST=アクションに追加し、クライアント側のJavaScriptでアクションから返される成功/失敗メッセージを処理する必要があります。 。
これを行う場合は、ユーザーが「送信」ボタンを複数回クリックしないようにする必要があるため、最初のクリック後に非表示または無効にして、検証エラーで表示/有効にすることができます。 ..
Webでは、メッセージボックスを表示するためにJavaScriptを使用する必要があります。構文(ビューに移動するのは最も単純な形式です)
Alert("Hello There!");
これをコントローラーから直接呼び出すことはできません。上記のコードをThankYouビューに挿入するだけです。
これは非常に単純ですが、概念を説明する必要があります。