在 RedirectionToAction 之前显示警告消息

时间:2021-06-26 08:01:31

标签: redirect model-view-controller

我有一个 MVC 应用程序,用户可以发送查询。提交查询后,如果没有错误,应用程序会将用户重定向到正确的页面。我试图在新页面打开之前显示一条消息。 这是控制器代码:

if(Session["login"] == null)
{
 string retsnd = clgnrhlp.SendEnquiry(name, email, message);
 ViewBag.MSGSENT = retsnd;
 return RedirectToAction("Index", "Login");
}
else
{
 string retsnd = clgnrhlp.SendEnquiry(name, email, message);
 ViewBag.MSGSENT = retsnd;
 return RedirectToAction("Index", "Trades");
}

在我的视图中(Contact.cshtml)我试过这个:

<script language='javascript' type='text/javascript'>
  var dataexists = @ViewBag.MSGSENT;
  if (dataexists)
    Response.Write(@ViewBag.MSGSEN)
</script>

但没有任何反应,它直接进入另一页。 请问有什么线索吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我为我的问题中描述的问题找到了解决方案。我决定使用 TempData 而不是 ViewBag。所以 TempData 保存了我想在消息中显示的值。根据代码,无论用户是否登录,我都会将用户重定向到不同的页面,但消息将相同。 因此,在用户将被重定向的两个视图中,我放置了以下代码:

@if (TempData["sent"] != null)
 {
   <script type="text/javascript">
      alert("@(TempData["sent"])");
   </script>
 }

它工作正常。

不过,如果你们中有人有更好的方法来做到这一点,我愿意接受建议。 谢谢

相关问题