首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> .NET 實例教學

ASP.NET 防止表單重複提交的簡單有效做法

     編輯:.NET 實例教學

結合前端按鈕禁用與後端屬性補強,輕鬆解決使用者連續點擊導致的重複提交問題。

前端:按鈕點擊即禁用

<asp:Button ID="Button1" runat="server" Text="送出" 
    OnClick="Button1_Click" 
    OnClientClick="this.form.submit(); this.disabled=true" 
    UseSubmitBehavior="False" />

關鍵屬性:

  • OnClientClick:先提交表單,再將按鈕設為禁用,防止二次點擊。
  • UseSubmitBehavior="False":讓 ASP.NET 不產生預設的 `__doPostBack` 腳本,改由瀏覽器原生提交,配合 `this.form.submit()` 運作。

後端:Page_Load 二次保障

protected void Page_Load(object sender, EventArgs e) {
    if (Page.IsPostBack) {
        Button1.Attributes.Add("disabled", "disabled");
    }
}

若使用者停用 JavaScript,後端渲染時仍會輸出 disabled="disabled",確保按鈕在回傳後不可再點擊。

原理總結

  1. 使用者點擊 → 瀏覽器執行 `this.form.submit()` → 按鈕立即禁用。
  2. 表單送達伺服器 → `Page_Load` 偵測 `IsPostBack` → 再次輸出 disabled 屬性。
  3. 頁面重新呈現時按鈕維持禁用狀態,除非重新整理頁面。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved