ViewState 將控制項狀態序列化為 Base64 字串置於隱藏欄位,帶來三大負面影響:
<asp:TextBox EnableViewState="false" /><%@ Page EnableViewState="false" %><pages enableViewState="false" />啟用後會在 ViewState 加入 MAC 驗證碼防篡改,但會增加運算開銷;**純效能考量時建議關閉**。
| 特性 | Response.Redirect | Server.Transfer |
|---|---|---|
| 運作流程 | 伺服器回傳 302,瀏覽器重新請求新 URL | 伺服器端直接轉交執行新頁面 |
| 網路往返 | 兩次 (回傳+重新請求) | 一次 |
| 目標範圍 | 任意 URL (跨站、跨應用程式) | 同應用程式內的 .aspx 頁面 |
| URL 顯示 | 瀏覽器網址列更新為新 URL | 網址列維持原 URL |
| Context.Items 可用 | 不可用 | 可用 (同一請求) |
同應用程式內頁面跳轉優先使用 Server.Transfer 減少往返;需變更 URL、跨應用程式或導向靜態頁面才用 Response.Redirect。