ASP.NET解决重复提交的问题
向数据库提交表单数据,碰到网络堵塞时,用户多次点击提交按钮,使得数据库中保存多条重复记录。
解决方法一:
<asp:button id="btnSave" onclick="btnSubmit_Click" runat="server" OnClientClick="javascript:if (Valid()){this.disabled=true;this.form.submit();}" UseSubmitBehavior="False" />
解决方法二:
btnSave.Attributes.Add("onclick", "javascript:if (Valid()){" + this.GetPostBackEventReference(this.btnSave) + ";this.disabled=true;} else {return false;}");
这两张方法都是通过禁用按钮的方式实现。可以在提交前进行客户端数据有效性检查,数据有效才提交,在客户端Valid方法中进行验证;
到服务器端也可以进行数据检查和按钮状态控制,如果数据无效,或者操作失败,需要重新启用按钮,使用以下代码实现:
btnSave.Attributes.Add("disabled", "");
<asp:button id="btnSave" onclick="btnSubmit_Click" runat="server" OnClientClick="javascript:if (Valid()){this.disabled=true;this.form.submit();}" UseSubmitBehavior="False" />
解决方法二:
btnSave.Attributes.Add("onclick", "javascript:if (Valid()){" + this.GetPostBackEventReference(this.btnSave) + ";this.disabled=true;} else {return false;}");
这两张方法都是通过禁用按钮的方式实现。可以在提交前进行客户端数据有效性检查,数据有效才提交,在客户端Valid方法中进行验证;
到服务器端也可以进行数据检查和按钮状态控制,如果数据无效,或者操作失败,需要重新启用按钮,使用以下代码实现:
btnSave.Attributes.Add("disabled", "");