如何在 MVC 控制器中使用消息框?
Posted
技术标签:
【中文标题】如何在 MVC 控制器中使用消息框?【英文标题】:How to use message box in MVC controller? 【发布时间】:2012-03-27 15:15:33 【问题描述】:我创建了一个 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();
【问题讨论】:
【参考方案1】:为了确保您视图中的“警报”仅在您打算时显示(来自您的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 一样写出脚本。希望这会有所帮助!
【讨论】:
【参考方案2】:@雷诺兹
你的答案很完美。
在 Razor 中,可以替换以下行
alert("@TempData[alertMessage]");
通过以下
alert('@TempData["alertMessage"]');
PS。注意引号
【讨论】:
答案很简单。它对我不起作用,所以我知道这是由于引用。一旦我修正了引号,它就起作用了。 我们是开发人员,最重要的是,逻辑有效,所以答案对我来说似乎是真实的。我只是更正它以确保正在学习 MVC 的人不会被卡住。我不明白你想证明什么。如果你想让我说你是天才,那就这样吧。感谢天才指出错误。【参考方案3】:在控制器中使用此代码
public ActionResult Edit(CoverLetterModel model)
TempData["msg"] = "<script>alert('Change succesfully');</script>";
在视图中使用此代码
@html.Raw(TempData["msg"])
【讨论】:
在视图页面上添加脚本的简单方法【参考方案4】:听起来您可能希望在用户输入注册数据的视图上显示“谢谢”消息框?
如果是这种情况,您需要对操作进行 AJAX POST,然后在客户端 JavaScript 中处理从操作返回的成功/失败消息。
如果您这样做,请记住一件事,您不希望您的用户多次单击“提交”按钮,因此您可能希望在第一次单击后隐藏或禁用它并在验证错误...
【讨论】:
【参考方案5】:在网络上,您需要使用 Javascript 来显示消息框。语法(进入你的视图是最简单的形式)
Alert("Hello There!");
您不能直接从控制器调用它。只需将上述代码放入ThankYou 视图即可。
这很简单,但应该给你概念。
【讨论】:
以上是关于如何在 MVC 控制器中使用消息框?的主要内容,如果未能解决你的问题,请参考以下文章