系統整理 ASP.NET 頁面間傳遞資料的七大常用方式。
Response.Redirect("WebForm5.aspx?Name=" + txtName.Text);
// 目標頁:Request.QueryString["Name"]
優點:簡單;缺點:URL 可見、長度限制、不安全。
HttpCookie c = new HttpCookie("Name") { Value = txtName.Text };
Response.Cookies.Add(c);
Response.Redirect("WebForm5.aspx");
// 目標頁:Request.Cookies["Name"].Value
客戶端持久化,部分瀏覽器可停用。
Session["Name"] = txtName.Text;
Response.Redirect("WebForm5.aspx");
// 目標頁:Session["Name"].ToString()
伺服器端儲存,預設 InProc,支援分散式模式。
伺服器端轉向,保留原請求 Request 物件,目標頁可直接存取 Request.Form、Request.QueryString,瀏覽器 URL 不變。
全域共享,需 Application.Lock()/UnLock() 確保執行緒安全。
<input type="hidden" name="hidValue" value="..." />
表單回傳時自動攜帶。
持久化、大量、結構化資料首選。
依據資料敏感度、生命週期、範圍、效能需求選擇適當方式,實務常組合使用。