頁面導向是 Web 開發最基礎也最關鍵的操作。ASP.NET 提供多種方式,各有適用場景與效能特性。本文系統比較五大方式,助你精準選型。
| 方式 | 執行端 | URL 變化 | 資料保留 | 適用場景 | 效能 |
|---|---|---|---|---|---|
| HyperLink 控件 | 客戶端 | 是 | 無 | 靜態導航、使用者主動點擊 | 最佳(無伺服器開銷) |
| Response.Redirect | 客戶端 (302) | 是 | 無 (需 Session/Cookie) | 跨站點、需 URL 可書籤、登入後導向 | 較差 (兩次往返) |
| Server.Transfer | 伺服器端 | 否 | 保留 (Request/Session) | 同站點內部流程、隱藏真實 URL、效能敏感 | 優 (單次處理) |
| Server.Execute | 伺服器端 | 否 | 保留 | 頁面片段嵌入、元件化複用、動態模板 | 中 (額外處理) |
| 超連結 <a> | 客戶端 | 是 | 無 | 純 HTML 導航、SEO 友善 | 最佳 |
ViewState/ControlState 遺失。Request/Session、URL 不變(安全性佳)。<html> 標籤)。Server.Transfer,但執行完返回原頁面繼續。@Page EnableViewStateMac="false",可讀取原頁面表單資料。HyperLink 或 <a>。Response.Redirect。Server.Transfer。Server.Execute 或更現代的 UserControl/RenderPartial。理解本質差異,才能在架構層面做正確決策,避免效能陷阱與體驗缺失。