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

ASP.NET HTML 按鈕觸發後端方法:AJAX 呼叫 ASHX 處理常式最佳實踐

     編輯:程式設計綜合問答

問題場景



HTML `` 是純客戶端控制項,無法直接觸發伺服端事件(如 ``)。

推薦架構:前端 AJAX → 後端 ASHX/Web API

1. 建立 Generic Handler (.ashx)


<%@ WebHandler Language="C#" Class="MyHandler" %>
using System.Web;

public class MyHandler : IHttpHandler {
    public void ProcessRequest(HttpContext context) {
        context.Response.ContentType = "application/json";
        string action = context.Request["action"];
        if ("doSomething".Equals(action)) {
            // 業務邏輯
            context.Response.Write("{\"success\":true,\"msg\":\"完成\"}");
        }
    }
    public bool IsReusable => false;
}

2. 前端 jQuery AJAX 呼叫





替代方案比較

方案優點缺點適用場景
ASHX Handler輕量、無 ViewState、效能佳需手動處理序列化簡單 AJAX 端點
Web API ControllerRESTful、屬性路由、內建內容協商較重、需路由設定標準 API 服務
PageMethod (ScriptManager)無需獨立端點、型別安全需 ScriptManager、ViewState 開銷WebForms 既有專案
__doPostBack觸發完整頁面生命週期全頁回傳、體驗差極少數相容需求

安全性檢查清單

  • 驗證 `HttpContext.Current.User.Identity.IsAuthenticated`
  • 檢查 `Request.HttpMethod == "POST"` 防止 CSRF
  • 輸入參數白名單驗證,防止注入攻擊
  • 敏感操作加入 Anti-Forgery Token 驗證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved