用户从后退按钮到达时重新加载页面

时间:2012-04-02 15:58:52

标签: javascript asp.net html

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

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

编辑:

我还应该提一下,我注意到我最近添加了一个表缺少2个单元格。这让我相信在某个地方有一个旧的状态被缓存,虽然清除浏览器缓存并重新启动我的服务器根本没有帮助。

EDIT2:

此外,当我回到管理页面

时,设置window.onload()会被破坏

2 个答案:

答案 0 :(得分: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?

答案 1 :(得分:0)

事实证明这只是一个IE9问题。我的onload方法永远不会被调用。在其他浏览器中工作正常。

为了让它在IE9中工作,我必须做的修复是将查询字符串附加到页面,这样当我回到页面时,IE9将返回浏览器切换查询字符串已经改变或需要重新评估。

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