1

我有一个页面,其中包含一个用户控件,它只是一个个性化的下拉列表。我为每个项目分配了属性onClick=__doPostBack('actrl',0)

当我单击页面回发罚款时,我得到了预期的结果。但是在 IE6 中,我的页面不会更改为从服务器加载的新值。

奇怪的是,当我 shift + 单击链接时,页面重新加载所有更改都很好。

我试图禁用页面上的缓存,但没有运气。

使用所有这些代码

Response.CacheControl = "no-cache"
Response.AddHeader("Pragma", "no-cache")
Response.Expires = -1
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1))
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Page.Response.Cache.SetExpires(DateTime.Now.AddDays(-30))
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)
Page.Response.Cache.SetNoServerCaching()
Page.Response.Cache.SetNoStore()
Response.Cache.SetNoStore()

此外,当我调试应用程序时,我可以看到要渲染的生成的 html 是正确的,但它没有被渲染。

这个问题只发生在 IE6 中。

4

2 回答 2

3

这是一个已知的 IE6 错误 (#223),带有神奇的 HTTP 获取请求。

在此处查看错误: http ://webbugtrack.blogspot.com/2007/09/bug-223-magical-http-get-requests-in.html

当内联事件处理程序导致 IE6 中的页面更改时,就会发生这种情况。

于 2008-10-16T02:48:53.070 回答
0

问题是 IE6 没有从服务器重新加载页面(它只是抓取缓存的副本),但是在 IE6 后的表单上应该重新加载。为什么要添加 _doPostBack 作为属性,这些应该在任何需要回发的 asp.net 控件上自动生成。

于 2008-10-15T21:37:49.563 回答