Asp.net在重新加载时复制表单提交

时间:2008-12-10 18:42:32

标签: c# asp.net

如何防止因浏览器中的页面重新加载而第二次发布的表单被C#Asp.Net再次添加到我的数据库中。

谢谢, 史蒂芬

6 个答案:

答案 0 :(得分:5)

您可以做的一件事是在提交第一页后,您可以将response.redirect返回到同一页面(如果点击刷新则会杀死SUBMIT)。

编辑:拼写。

答案 1 :(得分:3)

您需要一些标识表单/页面的唯一值 - 可能是隐藏字段中生成的数字 - 并记住/检查已经处理过的

答案 2 :(得分:3)

我有时会添加以下行“Response.Redirect(”ThisPage.aspx“);”到了回发处理程序的末尾有几个原因。如果要更新外部源中保存的数据并且具有复杂的接口(特别是使用javascript来更改服务器控件的接口),则会强制重置所有控件,并且当触发onload事件时,IsPostBack属性将设置为false。另一个副作用是击中F5不会重新发送命令。在您的情况下,这可能是也可能不是正确的事情:

答案 3 :(得分:2)

尝试使用Post/Redirect/Get成语:处理回发后(在Page_Load或代码隐藏点击处理程序中),将页面重定向回自身,

Response.Redirect(Request.Url.ToString(), true);

答案 4 :(得分:0)

最后使用 Response.Redirect(“页面地址”);

答案 5 :(得分:-1)

HTTP提供了一种避免意外重新提交的机制 - 在表单标记中使用POST方法,而不是GET方法。

我认为你应该使用POST方法来更新资源的请求是公平的,因为它也会阻止其他不受欢迎的行为,例如为更新数据的页面加书签,例如

寻找你感兴趣的贴纸↓↓↓
豫ICP备18024241号-1