我在使用简单的 ASP.NET 应用程序和回发后的后退按钮时遇到问题。
相关页面上有一个简单的表单、一些文本字段等,以及一个执行回发(自动回发)的下拉列表。
“正常”流程是用户填写表单并可能更改下拉列表。根据下拉值,页面内容可能会发生变化。
我遇到的问题是,在用户更改下拉列表并且回发完成后,用户提交按钮,页面导航到其他页面,然后当我单击后退按钮时。他们看到来自 IE 的“网页已过期”消息。
最佳答案
发生这种情况是因为您要求浏览器“返回”到提交表单之前的状态。在这种情况下,页面已“过期”,因为表单上的信息已发送到服务器。
您可能会在自己没有意识到的地方收到回发。例如,“根据下拉值,页面内容可能会发生变化。”您可能通过 OnChange 事件来完成此操作,该事件会在下拉列表更改时触发回发。现在后退按钮的行为正如您所发现的那样。
您有几个选择:
- 在 Javascript 中更改客户端的表单内容。
- 使用 AJAX/UpdatePanel 和部分回发重建表单。
- 在页面上放置指向应用程序常用部分的链接,并希望人们使用这些链接而不是返回。 :)
关于c# - Asp.net 网页已过期且浏览器后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36753076/