0

我希望有人以前见过这个,因为我一生都找不到问题。

我正在尝试在应用程序中执行旧的“修复后退按钮”操作,我认为我有一个相当不错的方法,问题是它依赖于应用程序在您回击时不调用 page_load 而是加载缓存版本的页面。

在我大约 60% 的页面上,这正是发生的情况。它加载缓存的版本,一切都很好。在另外 40% 时,当我点击返回按钮 page_load 调用时,强制刷新。作为参考,对 page_load 的调用不在回发中。

更奇怪的是,这只发生在 IE (6 & 7) 中。在 Firefox page_load 中永远不会被调用。

我在这两种类型的页面上都使用了 ASP.NET Ajax 框架。以前有人见过这样的事情吗?

- 更新 -

在进行了更多调查后,我发现当我使用搜索从一个页面导航到另一个页面时,应用程序对于不同页面的行为不同。在损坏的页面上,page_load 被调用了两次,搜索被调用了两次,在 fiddler 中,它变成了 2 个不同的重定向回发,其中第二个没有设置缓存。

在工作页面 page_load 和搜索只发生一次,它会立即重定向。

第二个 Response.Redirect 导致了这个问题。仍然不确定为什么会这样。

4

2 回答 2

1

检查服务器为缓存控制 http 标头返回的内容,然后尝试设置 Response.Cache.SetCacheability()/ 在页面上使用输出缓存页面指令,看看服务器是否说应该缓存页面。

于 2008-10-15T03:01:53.200 回答
0

如果您使用的是 ASP.NET AJAX,为什么不使用历史服务器控件对象?

替换历史,后退按钮将转到您想要的链接。

试试这个

于 2008-10-14T21:14:58.220 回答