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