1

我们正在使用Response.Redirect将用户发送到网站以进行问卷调查。我们有一个数据库,用于存储有关用户参加调查的资格的信息,如果他们符合条件,他们的主页上会出现一个“参加调查”按钮,并且一个变量存储调查的 URL。

关于TakeSurvey_Click事件,代码原来如下:

FormsAuthentication.SignOut();
Response.Redirect(TheURL);

非常直截了当,多年来工作得很好。最近,我们更改了用户被重定向到的网站。成千上万的用户没有遇到任何问题;然而,对于一个相当重要的群体(2-3%),当他们按下“参加调查”按钮时,什么也没有发生。

在搜索互联网后,我有理由确定,我已经尝试了所有推荐的方法来处理这种情况,但没有一个能真正达到我想要的效果。我想要发生的是,如果 Take Survey 没有将用户发送到链接(顺便说一句,我们已经检查了为非工作链接生成的链接,它们是很好的链接),我想要一个信息出现的页面告诉他们我们遇到了问题,如果他们可以向我们发送有关其环境的一些信息,这将有助于解决问题。看起来很简单,但无论我尝试什么,我要么无法让页面不显示,要么,如果我使用覆盖并发送错误,它永远不会显示并且永远不会重定向。

有人有想法么?

4

1 回答 1

0

Response.Redirect向浏览器发送“302 Moved”响应。浏览器负责导航到目标 URL。

因此,一旦您发出Response.Redirect,它就无法控制,并且没有简单的方法可以检测浏览器没有成功导航到您选择的 URL。

现在,有几种不同的方法(我能想到的处理这个):

  • 您也许可以document.location从客户端 JavaScript 进行设置。
  • 发出重定向的页面可以定期刷新自身(使用 JavaScript 或meta refresh)。如果它在应该去别的地方之后发现自己仍然在同一页面上,那么它可以发出警告。
  • 或者,更简单地说,发出重定向的页面可能只显示“我们正在派您参加调查。如果 30 秒后,您仍在查看此消息,则说明出了点问题。”。
于 2013-04-05T18:24:30.707 回答