我有一个包含用户控件的页面,该控件只是一个个性化的下拉列表。我为每个项目分配了属性onClick=__doPostBack('actrl',0)
。
当我点击页面回传很好,我得到了预期的结果。但是在IE6中,我的页面不会更改为从服务器加载的新值。
奇怪的是,当我转移+点击链接页面重新加载所有更改都很好。
我尝试在页面上禁用缓存,但没有运气。
使用所有这些代码
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中发生。
答案 0 :(得分:3)
这是一个已知的IE6错误(#223),带有神奇的HTTP get请求。
请参阅此处的错误: http://webbugtrack.blogspot.com/2007/09/bug-223-magical-http-get-requests-in.html
当内联事件处理程序在IE6中导致页面更改时会发生这种情况。
答案 1 :(得分:0)
问题是IE6没有从服务器重新加载页面(它只是抓取缓存的副本),但是在IE6的表单上应该重新加载。为什么要添加_doPostBack作为属性,应该在任何需要回发的asp.net控件上自动生成。