在ASP.NET中,Response.Redirect是否会妨碍目标URL的页面加载事件?

在ASP.NET中,Response.Redirect是否会妨碍目标URL的页面加载事件?,redirect,event-handling,pageload,Redirect,Event Handling,Pageload,在我的ASP.NET Web表单应用程序中,我有两个页面MyPage.aspx和Login.aspx 当用户在MyPage中并且需要登录时,单击 <a href="~/Login.aspx?ref=~/MyPage.aspx">login</a> 重定向页面时,不会触发页面加载事件,或者至少不会执行其事件处理程序。这是响应重定向的一种典型的非常奇怪的行为吗?如果是这种情况,我如何才能阻止这种行为,以便启动页面加载 PS:我试图将Response.Cache.setcac

在我的ASP.NET Web表单应用程序中,我有两个页面MyPage.aspx和Login.aspx

当用户在MyPage中并且需要登录时,单击

<a href="~/Login.aspx?ref=~/MyPage.aspx">login</a>
重定向页面时,不会触发页面加载事件,或者至少不会执行其事件处理程序。这是响应重定向的一种典型的非常奇怪的行为吗?如果是这种情况,我如何才能阻止这种行为,以便启动页面加载


PS:我试图将Response.Cache.setcacheabilityhtpcacheability.NoCache放在重定向之前,但没有成功

为了防止浏览器使用重定向目标的缓存副本,在您的例子MyPage.aspx中,您需要打开缓存能力并设置MyPage.aspx的过期时间,而不是将其放在重定向之前。
重定向实际上会将响应发送回客户端浏览器,告诉它请求另一个页面。通过在重定向调用之前删除缓存,它实际上告诉浏览器不要缓存当前页面,该页面当时仍然是Login.aspx。

您是否仍在寻找此问题的更多答案?或者你用另一种方式解决了它,你可以与社区分享吗?这个问题非常愚蠢。最初开发应用程序的人使用绝对URL。这意味着,当它重定向时,它不是转到开发版本,而是转到绝对URL,该URL指向实时网站。这就是为什么它在调试过程中从来没有进入页面加载,在这种情况下,我可能需要修改我的答案,以包括鞭笞。你能结束这个问题吗?我开始了结束过程。如果你投了票,还有3票。thanksHow/我在哪里做?我想这需要比我更多的机会。
 myUrl = Request.QueryString["ref"];
 Response.Redirect(myUrl); //myUrl = "~/MyPage.aspx"