1. 程式人生 > >Asp.Net頁面傳值的方法簡單總結【原創】

Asp.Net頁面傳值的方法簡單總結【原創】

tid 周期 () 路徑 coo webp 方式 qpi 優點

技術分享

1、QueryString

當頁面上form按照get的方式向頁面發送請求數據的時候,web server會將請求數據放入

一個QEURY_STRING的環境變量中,然後通過QeueryString方法從這個變量中獲取相應的參數。

例如:

發送參數頁面Test1.aspx 按鈕單擊代碼:

string url = "Test2.aspx?id="+ txtId.Text;

Response.Redirect(url);

接收參數頁面 Test2.aspx

後臺代碼獲取:string id=Request.QueryString["id"];

優點:使用比較簡單

缺點:安全性低,參數直接暴露在url上,並且不能傳遞對象。

2、Session

把需要傳的值放在Session變量中,然後在另外一個變量中使用它,session存放在服務器端,

在Session變量中存儲過多的變量,會消耗較多的服務器資源,所以要及時清理不需要的Session變量。

優點:能傳遞復雜對象,數據量大小不限制

缺點:作為全局變量,容易誤操作。

用法:

Session["id"]= txtId.Text;

在接收頁面調用:string id=Session["id"].ToString();

3、Application

Application在整個應用程序生命周期都是有效的,類似於使用全局變量,是所有的用戶

共用的全局變量,session是單個用戶獨有的全局變量,Application一般用於記錄用戶

信息、統計在線人數等。

用法:

Application.Lock();

Application["id"]= txtId.Text;

Server.Transfer("Test2.aspx");

Application.UnLock();

在接收頁面調用:string id=Application["id"].ToString();

4、Cookie

Cookie主要用於客戶端保存用戶的信息,比如登錄信息,它通過HTTP頭傳遞信息,只能

包含字符串的值,通過Request對象的Cookie集合可以獲得瀏覽器所有的Cookie。

優點:使用簡單,可以減輕服務器的負擔,通過Cookie來保存用戶的登錄狀態,實現記住

用戶登錄的功能。

缺點:被認為用來收集用戶隱私而遭到批評,也可能被別人篡改、偽造登錄信息。

用法:

Test1.aspx 按鈕單擊代碼:

HttpCookie name =new HttpCookie("name1");

HttpCookieage = new HttpCookie("age1");

name.Value = txtName.Text;

age.Value = txtAge.Text;

Response.Cookies.Add(name);

Response.Cookies.Add(age);

Server.Transfer("Test2.aspx");

Test2.aspx 按鈕單擊代碼:

TextBox1.Text = "姓名是:" +Request.Cookies["name1"].Value.ToString() + "年齡是:" +Request.Cookies["age1"].Value.ToString();

5、Server.Transfer

Server.Transfer 是一個很奇特的方法。當使用 Server.Transfer 方法重定向頁面時,

雖然頁面也會被重定向至指定頁,但是並不會在瀏覽器的URL上體現出來,並且若重定

向的頁面後有參數,也不會顯示在瀏覽器的URL上。

優點:直接在服務器端重定向,使用簡單方便,減少了客戶端對服務器端提出請求;

缺點:客戶端瀏覽器中的URL地址是不改變,會導致在新的頁面可能出現一些意想不到的問題。

比如如果源頁面和目的頁面不在同一個虛擬目錄或其子目錄下,那麽使用相對路徑的

圖片、超鏈接都會導致錯誤的指向。可以傳遞各種數據類型的值和控件的值。

來源:我的公眾號

Asp.Net頁面傳值的方法簡單總結【原創】