Response.Redirect之后的Javascript alert()

时间:2011-05-19 05:40:20

标签: c# javascript jquery asp.net

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

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

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

让我们看一下当你调用response.redirect()

时会发生什么
  1. 服务器将HTTP响应302发送到浏览器,包括要导航到
  2. 的URL
  3. 浏览器不显示响应内容,而是从指定的网址
  4. 获取内容
  5. 如果对新网址的请求成功,则会显示。
  6. 现在看一下,我们可以推断,不可能告诉浏览器从发出重定向的页面做一个alert(),因为它的内容(如果有的话)被丢弃了。

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

    示例:

    1. Page1重定向到第2页
    2. Page2检查Request.UrlReferrer是否等于page1
    3. 如果相等,则显示提醒
    4. 如果没有,请不要做任何特别的事情
    5. 另一种方法是首先进行警报,然后从javascript进行重定向。 window.location.href = newurl。

答案 2 :(得分:0)

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