防止PostBack出现在历史记录中

时间:2008-09-19 15:12:19

标签: asp.net vb.net .net-2.0

我有一个页面,我提交了一些数据,然后返回原始表单并显示“保存成功”消息。但是,用户希望能够通过单击浏览器的“后退”按钮返回到他们所在的上一页(包含搜索结果)。但是,由于回发,当他们单击“返回”按钮时,他们不会转到上一页,他们只是转到同一页面(但是在之前的状态)。我读到启用SmartNavigation将处理此问题(历史记录中出现的回发)但是,它已被弃用。什么是“新”最佳实践?

*编辑 - 我添加了ScriptManager控件,并将按钮包裹在UpdatePanel中,但是现在我收到以下错误:

Type 'System.Web.UI.UpdatePanel' does not have a public property named 'Button'

我错过了参考资料吗?

*忽略上面的编辑,我只是​​忘了添加< ContentTemplate>部分到UpdatePanel:P

2 个答案:

答案 0 :(得分:4)

如果您将“保存”按钮放在UpdatePanel中,则回发将不会显示在用户历史记录中。

答案 1 :(得分:0)

如果可能,我会避免。一个更好的解决方案是在“保存成功”屏幕上有一个按钮,只返回搜索结果。

ajaxy保存的问题是你违反了用户期望的“后退”规则。此用户可能希望“后退”按钮返回“搜索”页面,但其他用户可能希望单击“返回”将其返回“添加/更新”页面。因此,如果另一个用户尝试更新某些内容,点击保存,然后“woops,我忘记更新内容”,他们将点击返回,现在他们处于搜索结果,而不是预期的更新页面。