要复制问题:
- 创建一个带有服务器验证的 ASP.NET MVC 3 页面。
- 提交验证错误。
- 服务器验证错误以红色显示。
- 更正验证错误并再次提交,然后成功重定向到另一个报告页面。
- 单击报告页面上的返回按钮时,验证错误消息仍显示在原始表单上。
用户在单击后退按钮时看到服务器验证消息感到恼火。
- 我不会考虑禁用后退按钮的解决方案。
- 我不会考虑在单击后退按钮时刷新页面的解决方案。
在成功提交表单或任何其他有效解决方案之前,我会考虑服务器验证消息消失。
谢谢
要复制问题:
用户在单击后退按钮时看到服务器验证消息感到恼火。
在成功提交表单或任何其他有效解决方案之前,我会考虑服务器验证消息消失。
谢谢
为了避免看到验证消息,我禁用了缓存,这样当用户单击后退按钮时浏览器会自动重新加载页面。但是,如果页面之前使用POST
方法提交,用户会看到表单重新提交警告。为了解决这个问题,如果 ModelState 无效,我使用 javascriptwindow.history.back()
将请求更改POST
回先前的请求。GET
以下是详细信息...
在控制器中创建两个函数:一个带有[HttpGet]
属性,一个带有[HttpPost]
属性。
在HttpPost
版本中,添加以下逻辑...
返回一个包含 javascript 的简单视图,如下所示。
<html> <body> <script>window.history.back(); </script> </body> </html>
在HttpGet
版本中,
[OutputCache(NoStore = true, Duration = 0)]
以下是一些清除历史记录的方法,以便后退按钮不会显示记住的页面: http: //www.codeproject.com/Tips/135121/Browser-back-button-issue-after-logout