在ASP.NET中,Response.Redirect是否会阻碍目标URL的Page_Load事件?

时间:2012-02-27 15:26:39

标签: redirect event-handling pageload

在我的ASP.NET Web窗体应用程序中,我有两页 MyPage.aspx Login.aspx

当用户在 MyPage 中时,需要登录

上的点击次数
<a href="~/Login.aspx?ref=~/MyPage.aspx">login</a>

用户被带到 Login.aspx ,输入用户名和密码,然后点击登录按钮login_onClick事件处理程序执行某些操作,然后执行

 myUrl = Request.QueryString["ref"];
 Response.Redirect(myUrl); //myUrl = "~/MyPage.aspx"

重定向页面时,不会触发Page_Load事件(或至少不执行其事件处理程序)。这是Response.Redirect的典型(非常奇怪)行为吗?如果是这种情况,我怎么能阻止这种行为,以便解雇Page_Load

PS:我试图在重定向之前放置Response.Cache.SetCacheability(HttpCacheability.NoCache)但没有成功

1 个答案:

答案 0 :(得分:0)

为了防止浏览器使用重定向目标的缓存副本,在您的案例MyPage.aspx中,您需要关闭可缓存性并设置MyPage.aspx的到期日期,而不是在重定向之前放置它。 重定向实际上将响应发送回客户端浏览器,告诉它请求其他页面。通过在重定向调用之前删除缓存,实际上它告诉浏览器不要缓存当前页面,当时页面仍然是Login.aspx。