2012-04-02 85 views
8

我有一个通用的错误页面,任何处理的错误将重定向到。我有一个管理页面,当用户调用错误,并且用户被带到错误页面时,从错误页面点击后退按钮会导致管理页面加载不正确。当用户从后退按钮到达时重新加载页面

所以我需要的是当我来自错误页面时重新加载管理页面的方式。我曾尝试在管理页面上设置没有缓存等,并检查回发,但没有任何工作。设置没有缓存似乎什么都不做,管理页面的document.ready函数中的任何javascript都不会被调用。有没有其他方法可以实现这一点?

编辑:

我还要提到的是我已经注意到,在表丢失2个单元我最近增加。这使我相信页面的旧状态被缓存在某处,但清除浏览器缓存并重新启动服务器根本无济于事。

EDIT2:

此外,当我回来的管理页面设置的window.onload()被核爆

+0

您将在这里找到你的答案 http://stackoverflow.com/questions/158319/cross-browser-onload-event-and-the-back-button – 2012-04-02 16:04:34

+0

可能重复:http://stackoverflow.com/问题/ 158319 /跨浏览器上的事件和后退按钮 – 2012-04-02 16:19:02

回答

0

因此,原来这只是一个IE9问题。我的onload方法只是永远不会被调用。在其他浏览器中正常工作。

为了让它在IE9中工作,我必须要做的修复是在页面中追加一个查询字符串,以便当我回到页面时,IE9将返回浏览器切入查询字符串已更改或需要重新评估。

感谢你们两位,或帮助我找到问题。

2

您应该能够通过使用此代码重写OnInit照顾的是:

public class ProductBrowser : Page 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetNoStore(); 
     Response.Cache.SetExpires(DateTime.MinValue); 

     //EDIT: Set the value to FALSE 
     Response.Cache.SetAllowResponseInBrowserHistory(false); 

     base.OnInit(e); 
    } 
} 

详情请参见这个问题:Back button refresh page

编辑

对于清除缓存,检查了这一点:
Manually clear ASP.NET server cache for a single application/web site?

+0

我试过这样做,但没有。它使我的事情,我的网页的旧状态被缓存在某处,但清除浏览器中的缓存并重新启动我的服务器什么也不做。 – Keerigan 2012-04-02 16:04:07

+0

我给'OnInit'增加了一行,供您试用。我还添加了一个JavaScript解决方案,但它是一种黑客攻击。 – 2012-04-02 16:15:49

+0

新行仍然没有帮助。只是做window.onload把初始负载放入一个循环 – Keerigan 2012-04-02 16:31:53

相关问题