我对FireFox和ASP.NET UpdatePanel有意见。我在表单中有一个复选框和一个UpdatePanel。当我选中复选框时,位于UpdatePanel中的asp:panel应该会变得可见。
<asp:CheckBox ID="cbMoreOptions" runat="server" Text="plus d'options" AutoPostBack="True" OnCheckedChanged="cbOptions_CheckedChanged" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" Visible="false">
sssssssss
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="cbMoreOptions" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel> 一切正常,但在复选框处于选中状态的情况下刷新页面后,情况就不一样了。如果发生这种情况,复选框rest检查页面不会更多地回发到服务器。firebug显示页面得到了响应,当我验证它的内容时,我遇到了错误500,它告诉我页面的信息已经损坏。所有这些都只在Firefox中发生。在IE8和谷歌Chrome浏览器中,一切都很好。
有没有人知道如何避免这种情况?这是Firefox的一个bug吗?所有奇怪的行为一直持续到我在URL文本框中输入。即使我创建了F5,也不会发生任何事情。F5和enter F5 the URL有什么区别?它们不应该有相同的结果吗?
非常感谢。
发布于 2009-07-09 22:08:15
您是否尝试过在UpdatePanel中放置复选框"cbMoreOptions“?
将放在UpdatePanel ContentTemplate部分中,并为CheckBox设置AsyncPostBackTrigger。
发布于 2009-11-11 11:25:32
我们很久以前就有这个问题了,这是火狐使用内存缓存来存储页面状态的方式,这会使ASP.NET处理视图状态隐藏字段的方式变得混乱。检查是否为您的aspx页面打开了缓存并禁用它。
编辑:这里有一个详细解释它的link。
发布于 2011-08-17 10:00:40
F5和enter the the URL有什么区别?它们不应该有相同的结果吗?
如果你在地址栏中点击enter,它会发出一个GET请求,即你使用!IsPostBack进入你的页面的生命周期。当你点击F5时,我观察到火狐会重复最后一个请求,所以如果最后一个请求是一个POST,它就会重复这个请求。这就是为什么你的页面停留在一个错误的状态。如果第一次回发导致了错误(复选框中的‘checkedChanged’),点击F5将会重复这个错误。
所以,不,它们不会有相同的结果。
我没有任何文档来支持这一声明,但这是我观察到的。如果有人能指出一个来源,我将很高兴看到它。
https://stackoverflow.com/questions/1000705
复制相似问题