首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET 前後端雙重驗證:前端驗證失敗時阻止後端提交的正確姿勢

     編輯:程式設計綜合問答

ASP.NET WebForms 中,前端 JavaScript 驗證與後端 C# 驗證並存。若前端驗證未通過,必須阻止表單提交(Postback),否則後端仍會執行 alert("提交成功") 邏輯。

核心:OnClientClick 返回 false

<asp:Button ID="btnSubmit" runat="server" Text="提交" 
    OnClientClick="return validateForm();" 
    OnClick="btnSubmit_Click" />

<script>
function validateForm() {
    if (!checkSomething()) {
        alert("前端驗證失敗");
        return false; // 關鍵:阻止 Postback
    }
    return true; // 通過才提交
}
</script>

常見錯誤

  • 在 OnClientClick 中只寫 validateForm() 而漏了 return,導致驗證結果被忽略。
  • 驗證函數未返回布林值。
  • 使用 return false 但函數中拋出 JS 錯誤導致中斷。

補充:Validation 控件

ASP.NET 內建 RequiredFieldValidator、RegularExpressionValidator 等驗證控件,設定 ValidationGroup 並讓 Button 的 CausesValidation="true",框架自動生成客戶端腳本阻止提交,無需手寫 JS。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved