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

ASP.NET 頁面傳值七大方法完整對照

     編輯:關於ASP.NET

Web 開發中頁面間傳值是基礎技能。本文整理七種主流方式,附代碼片段與適用場景分析。

方法對照表

方法代碼範例優點缺點/注意
1. QueryStringResponse.Redirect("B.aspx?id=1")
Request["id"]
簡單、可書籤、無伺服器負擔長度限制、明文、可被篡改
2. SessionSession["k"]=v;
Session["k"]
容量大、跨頁面、相對安全佔用伺服器記憶體、需序列化(StateServer/SQL)
3. ApplicationApplication["k"]=v;全域共享、適合計數器/快取所有用戶共用、並發需鎖、重啟失效
4. CookieResponse.Cookies["k"].Value=v;持久化、跨會話、客戶端儲存大小 4KB、用戶可禁用/刪除、安全性需加密
5. Server.TransferServer.Transfer("B.aspx")
目標頁用 Context.Handler 取值
伺服器端跳轉、URL 不變、保留表單/QueryString僅限同應用程式、瀏覽器歷史不記錄、相對路徑問題
6. Cross-Page PostBack<asp:Button PostBackUrl="B.aspx" />
B頁用 PreviousPage.FindControl
強型別存取前頁控件、無 Session 開銷緊耦合、前頁必須是 WebForm、ViewState 增大
7. CacheCache.Insert("k", v);高效能、支援過期/依賴、記憶體管理非持久、可能被移除、需檢查 null

選型建議

  • **少量非敏感資料、需分享連結** → QueryString。
  • **用戶狀態、購物車、權限** → Session (InProc 單機 / Redis 叢集)。
  • **全站公告、線上人數** → Application 或 Cache。
  • **記住我、偏好設定** → Cookie (加密+HttpOnly)。
  • **多步驟精靈、不想暴露 URL 參數** → Server.Transfer 或 Cross-Page PostBack。
  • **高頻讀取、可重算資料** → Cache (設定依賴自動失效)。

安全提醒

  1. QueryString/Cookie 絕不可直接用於 SQL 拼接,防注入。
  2. 敏感資料(ID、金額)必須加密或改用 Session/Server 端儲存。
  3. 驗證所有輸入,建立白名單機制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved