我创建了一个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();
}
答案 0 :(得分:13)
确保视图中的“提醒”仅在您打算显示时(从您的ThankYou方法重定向)而不是在有人意外导航到您的“ThankYou”视图时显示
//redirect to thankyou page
public ActionResult Thankyou()
{
TempData["alertMessage"] = "Whatever you want to alert the user with";
return View();
}
然后在你的“ThankYou”视图中,这个:
if(null != TempData["alertMessage"])
{
<script type="text/javascript">
alert("@TempData[alertMessage]");
</script>
}
这将像往常一样为任何JavaScript写出脚本。希望这有帮助!
答案 1 :(得分:5)
使用此代码
public ActionResult Edit(CoverLetterModel model)
{
TempData["msg"] = "<script>alert('Change succesfully');</script>";
}
在视图中使用此代码
@Html.Raw(TempData["msg"])
答案 2 :(得分:5)
@Reynolds
你的答案很完美。
在Razor中,可以替换以下行
alert("@TempData[alertMessage]");
通过以下
alert('@TempData["alertMessage"]');
PS。注意引号
答案 3 :(得分:3)
听起来您可能想在用户输入注册数据的视图上显示“谢谢”消息框?
如果是这种情况,您需要对某个操作进行AJAX POST,然后处理从客户端javascript中的操作返回的成功/失败消息。
如果您这样做,请记住一件事是您不希望用户多次单击“提交”按钮,因此您可能希望在第一次单击后隐藏或禁用它,并在一次显示/启用它验证错误......
答案 4 :(得分:1)
在网络上,您需要使用Javascript来显示消息框。语法(进入你的视图是最简单的形式)
Alert("Hello There!");
您无法直接从控制器中调用此方法。只需将上面的代码放入您的ThankYou视图中即可。
这很简单,但应该给你这个概念。