回发后 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 问题,因为它做了它应该做的事情的主要内容,如果未能解决你的问题,请参考以下文章

动态创建的 asp.net 控件在回发后消失

回发后asp.net jquery脚本未运行

为啥在 ASP.NET MVC 中回发后模型为空

回发后,我的 JavaScript 函数在 ASP.NET 中不起作用

文本框文本在回发后消失

UpdatePanel 异步回发后的 Javascript 事件订阅