【发布时间】:2010-11-11 16:19:42
【问题描述】:
我有一个带有详细信息和列表视图的网络表单,用户在详细信息视图的字段中填写数据,然后按“保存”按钮,目前一切正常。
但是,如果他们在此操作后按F5,则会在数据库中插入一条新记录,因为回发是重复的。
有人知道如何避免这种情况吗?
【问题讨论】:
-
在以下网址找到了一个相当简单优雅的解决方案:prashantprof.blogspot.com/2008/02/…
我有一个带有详细信息和列表视图的网络表单,用户在详细信息视图的字段中填写数据,然后按“保存”按钮,目前一切正常。
但是,如果他们在此操作后按F5,则会在数据库中插入一条新记录,因为回发是重复的。
有人知道如何避免这种情况吗?
【问题讨论】:
这对于任何使用 POST 请求进行操作的网页都是一样的。
您可以在保存按钮事件后使用Response.Redirect("yourpage.aspx") 来停止此操作。这会将它们发送到您的页面的新版本,其中没有发布数据。
另一种方法是让您的表单包含某种真实性令牌,例如生成的 GUID。您可以在处理保存请求之前进行一些检查,以确保之前没有发出使用该 GUID 的请求。
【讨论】: