我在使用简单的ASP.NET应用程序和回发后的后退按钮时遇到了问题。
有问题的页面上有一个简单的表单,一些文本字段等,以及一个做回发的下拉列表(autopostback)。
“正常”流程是用户填写表单并可能更改下拉列表。根据下拉值,页面内容可能会发生变化。
我遇到的问题是,在用户更改了下拉菜单并且回发完成后,用户提交按钮,页面导航到其他页面,然后单击后退按钮。他们看到来自IE的“网页已过期”消息。
答案 0 :(得分:2)
这种情况正在发生,因为您要求浏览器在提交表单之前“返回”状态。在这种情况下,页面已“过期”,因为表单上的信息已经发送到服务器。
你在可能没有意识到的地方得到回复。例如,“基于下拉值,页面内容可能会发生变化”。您可能通过OnChange事件完成此操作,该事件在下拉列表更改时触发回发。现在,后退按钮的行为与您发现的一样。
您有几个选择:
答案 1 :(得分:0)
这是浏览器中的预期行为。当您发布数据然后返回时,浏览器会告诉您内容已过期。想象一下,你刚买了东西,然后你不希望浏览器重新发送该信息。解决方案是使用Ajax发布到您的服务器,然后浏览器不会更新页面,也不会向您显示警告。