Response.Redirect之后的Javascript alert()

我在后面的代码中调用它:

(test.aspx) Response.Redirect("~/Default.aspx"); 

我想在重定向到Default.aspx之后/之前包含一个javascript警报,是否可能? 我这样做是因为我将一个值传递给另一个页面(test.aspx)并且该页面检查数据库,如果是读者HasRow(),则重定向到Default.aspx。

这样做的方法是使用javascript显示警报,然后使用javascript进行重定向:

 ScriptManager.RegisterStartupScript(this,this.GetType(),"Redit","alert('asdf'); window.location='" + Request.ApplicationPath + "Default.aspx';",true); 

让我们来看看调用response.redirect()时会发生什么

  1. 服务器将HTTP响应302发送到浏览器,包括要导航到的URL
  2. 浏览器不显示响应内容,而是从指定的URL获取内容
  3. 如果对新URL的请求成功,则显示。

现在看一下,我们可以推断,不可能告诉浏览器从发出重定向页面做一个alert()因为它的内容(如果有的话)被丢弃了。

您可以从要重定向到的页面中完成所需的操作 。 要执行此操作,只需检查Request.UrlReferrer以检查是否从正确的页面重定向,然后在适当时显示警报。

例:

  1. Page1重定向到第2页
  2. 第2页检查Request.UrlReferrer是否等于page1
  3. 如果相等,则显示警报
  4. 如果没有,不做任何特别的事

另一种方法是首先进行警报,然后从javascript进行重定向。 window.location.href = newurl。

如果您在Defaul.aspx页面上显示了某些消息,则必须声明它。 因为当您使用重定向时,您的页面将从顶部呈现。 您必须在重定向Sesion状态之前设置某个标志,并且在Default.aspx页面上,您必须插入在设置此Sesion状态时添加的部分。