在我的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)
但没有成功
答案 0 :(得分:0)
为了防止浏览器使用重定向目标的缓存副本,在您的案例MyPage.aspx中,您需要关闭可缓存性并设置MyPage.aspx的到期日期,而不是在重定向之前放置它。 重定向实际上将响应发送回客户端浏览器,告诉它请求其他页面。通过在重定向调用之前删除缓存,实际上它告诉浏览器不要缓存当前页面,当时页面仍然是Login.aspx。