【问题标题】:Javascript alert() after Response.RedirectResponse.Redirect 之后的 Javascript alert()
【发布时间】:2011-05-19 05:40:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# javascript jquery asp.net


    【解决方案1】:

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

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

    【讨论】:

    • 对不起,忘记在你分配window.location的地方放撇号',看看答案的变化
    • 应该可以,我刚刚在我这边测试过,它工作正常,请你粘贴你的代码看看为什么它不能工作。
    • 使用 (SqlDataReader dr = cmd.ExecuteReader()) { if (dr.HasRows) { while (dr.Read()) { buList.Add(dr[0].ToString()); } } else { // Response.Redirect("~/Default.aspx"); ScriptManager.RegisterStartupScript(this, this.GetType(), "Reedit", "alert('asdf'); window.location='" + Request.ApplicationPath + "Default.aspx';", true); } }
    • 你确定它正在进入那条线吗?另外,您的浏览器是否启用了 javascript?
    • 我也测试了你的代码,它应该可以工作,请确保它确实执行了该行,即你的 dr 不返回任何行,这样它就会失败到 else 语句
    【解决方案2】:

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

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

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

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

    示例:

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

    另一种方法是先发出警报,然后从 javascript 进行重定向。 window.location.href = 新网址。

    【讨论】:

    • 感谢您的信息伙伴。我如何从后面的代码中调用 javascript?
    • @Pod 你可以使用 Page.RegisterStartupScript()。它接受两个字符串参数。第一个只是一个唯一标识符,第二个是你的脚本。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 2014-09-27
      相关资源
      最近更新 更多