redirect - 在 RedirectionToAction 之前显示警告消息
问题描述
我有一个 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>
但什么也没发生,它直接转到另一页。请问有什么线索吗?
谢谢。
解决方案
我找到了问题中描述的问题的解决方案。我决定使用 TempData 而不是 ViewBag。所以 TempData 包含我想在消息中显示的值。通过代码,如果用户登录或未登录,我会将用户重定向到不同的页面,但消息将是相同的。因此,在将重定向用户的两个视图中,我放置了以下代码:
@if (TempData["sent"] != null)
{
<script type="text/javascript">
alert("@(TempData["sent"])");
</script>
}
它工作正常。
不过,如果你们中的任何人有更好的方法来做到这一点,我愿意接受建议。谢谢
推荐阅读
- javascript - 在 Javascript 中单击按钮时添加/删除一行
- r - 被R卡住了!(循环和线性模型)
- amazon-web-services - AWS NLB 是否在终止 TLS 时传递 SNI 值?(通过 SNI 路由)
- php - Windows 上 Symfony 5.0.1 控制台中已弃用的类警告
- android - Build.GetSerial() 在 API 29 上返回未知数
- mysql - Ansible playbook:MariaDB 用户创建失败
- google-maps - 谷歌地图缺少图片的替代品导致较低的可访问性
- javascript - 使用 node.js 进行机器学习
- spring - 自 Hoxton.RELEASE 以来 org.springframework.cloud.gateway.support.DefaultServerRequest 在哪里
- r - 基础 r 中的名称拆分