如何防止因浏览器中的页面重新加载而第二次发布的表单被C#Asp.Net再次添加到我的数据库中。
谢谢, 史蒂芬
答案 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方法来更新资源的请求是公平的,因为它也会阻止其他不受欢迎的行为,例如为更新数据的页面加书签,例如