C#中重定向页面之前的setTimeout

时间:2010-06-06 16:05:18

标签: c# asp.net

如何在此代码中实现超时:

Response.Write(@"<script language='javascript'>alert('some alert');</script>"); 
Response.Redirect(Request.ApplicationPath);

我想向用户显示消息,并在重定向后显示。但在我的解决方案中,操作发生得非常快,并且没有显示警报。

感谢

3 个答案:

答案 0 :(得分:4)

删除Response.Redirect,然后执行

Response.Write(@"
<script language='javascript'>
 alert('some alert');
  self.location = "/mypage.aspx";
</script>");

代码中的任何response.redirect都会忽略已发送到浏览器的任何内容

答案 1 :(得分:1)

您可以使用META Refresh标记。即使禁用了Javascript,也会执行重定向。下面的10是重定向完成前的超时时间:

<meta http-equiv="refresh" content="10;url=<%=Request.ApplicationPath %>">
<script>alert('some alert');</script>

<强>更新

至少在Firefox和Chrome中,超时从用户单击“确定”开始。它会发送更多内容以将您的文本放在页面上,而不是放在警告框中,例如:

<meta http-equiv="refresh" content="10;url=<%=Request.ApplicationPath %>">
<p class="alert">some alert</p>

答案 2 :(得分:0)

使用Response.Redirect,您可以向浏览器发送一个http 302代码,“强制”它请求另一个页面。这就是您的警报代码没有任何反应的原因。

如果要通知用户有关传输的信息,可以打印包含邮件和元刷新间隔的页面。或者你可以通过javascript处理它:

1)打印警报

2)将window.location更改为新路径