1. 程式人生 > >asp.net 重復提交

asp.net 重復提交

div mic 保存 gpo cache 遇到 頁面 表單 重新定義

<asp:Button ID="btnSumbit" runat="server"  Text="提交" UseSubmitBehavior="false" OnClientClick="this.value=‘正在提交‘;this.disabled=true;"   onclick="btnSumbit_Click" /> 

asp.net 防止頁面刷新或後退引起重復提交

項目中經常遇到刷新後重復的向數據庫增加一條相同的記錄,造成數據重復,如何規避這些問題呢?下面我們就一起討論一下在asp.net怎樣防止頁面刷新或後退引起重復提交數據的問題:

  其實asp.net防止刷新是asp.net開發中經常遇到的問題。通常有多種方法來實現:(下面只是個人總結的一些方法)不全,也很希望朋友們能多多補充。謝謝。

  1:請求轉發(即在數據提交操作後立即轉跳到其他頁面,防止頁面刷新引起回發操作)。

  2:前端使用腳本禁用表單提交按鈕。

  3:不保存緩存 Response.Cache.SetNoStore(); (即提交後表單上的數據不會被瀏覽器的緩存保存,如果此時再遇到刷新或者後退請求時, 就會顯示“網頁已過期”,數據也就不會重復提交了,這就起到了阻止刷新重復提交的效果。

  4:使用防偽標記,在表單提交後清空標記。

  5:MSDN的一種解決方案: 它是通過重新定義 System.Web.UI.Page 類來實現加載頁面時,是“刷新”、“後退”請求,還是正常請求,其他的頁面則繼承了自定義的這 個Page類

  (參見:http://msdn.microsoft.com/zh-cn/library/ms379557(VS.80).aspx )

   當然還有其他的解決方案,希望朋友們提出自己的解決方案。謝謝。

asp.net 重復提交