asp.net 頁面傳值的幾個方法
2024-07-10 12:38:22
供稿:網友
在這篇文章里,azamsharp 將為我們介紹一些ASP.NET頁面傳值的方式。本文所舉的例子非常簡單,僅僅包含了一個文本框和幾個按鈕,當按鈕點擊時文本框中的字符串將會以不同的方式傳遞到另外的頁面去。
1. Response.Redirect (或稱 Query String 方式、URL方式)
代碼如下:
Response.Redirect("WebForm5.aspx");
首先讓我們看看 Response.Redirect 方法,這應該是最簡單的了,當我們點擊Response.Redirect按鈕后觸發上面的那行代碼即可。在這里跟大家分享一個小技巧:有些時候我們會把上面的代碼放在try{ ... }catch() 中去,也就是說當我們捕獲異常,并把異常傳遞給另一個網頁。如果我們嘗試這樣做,也許會得到一個“System.Threading” 異常,這是因為我們跳轉到了另外一個頁面,而原來的頁面線程仍然在運行中??梢赃@樣來解決此問題:
代碼如下:
Response.Redirect("WebForm5.aspx",false);
這意味著告訴編譯器去“WebForm5.aspx”, 同時“false”參數告訴編譯器不要停止在原來頁面上的活動, 這方面我們可以參見System.Threading類。
在下面的代碼中,“txtName”是待傳值的文本框的名字,那個跟在“?”后面的“Name” 是一個臨時response變量的標志,它承載了txtName的值。
代碼如下:
private void Button1_Click(object sender, System.EventArgs e)
{
// Value sent using HttpResponse
Response.Redirect("WebForm5.aspx?Name="+txtName.Text);
}
OK,到此位置,我們已經完成了Response的傳值。但是,我們在"WebForm5.aspx"中怎樣接收傳來的值呢?不要急,我們將在"WebForm5.aspx"的page_Load事件中寫下面的代碼。首先,我們要確認傳來的值不是“null”,如果不是“null”,我們就可以用Label將這個值顯示出來。
注:當我們使用Response.Redirect傳遞變量時,所有的變量都能在瀏覽器的URL中看到,我們不能用這種方法來傳遞重要的機密數據,如信用卡號等。
代碼如下:
if (Request.QueryString["Name"]!= null)
Label3.Text = Request.QueryString["Name"];
2. Cookies 方式
接下來是用cookies, Cookies由服務端創建,但保存在客戶端,當我們點擊“Cookies”按鈕時,運行如下代碼:
代碼如下:
HttpCookie cName = new HttpCookie("Name");
cName.Value = txtName.Text;
Response.Cookies.Add(cName);
Response.Redirect("WebForm5.aspx");
首先,我們創建了一個名叫“cName”的cookie實例,由于一個cookie實例可以保存多個值,我們需要告訴編譯器這個cookie將保存“Name”值,并把txtName.Text的值賦給它,并把它加到"輸出流” 中,并使用Response.Redirect輸出到另外一個網頁。
然后讓我們看看怎樣在目標頁面中取出這個cookie中的值:
代碼如下:
if (Request.Cookies["Name"] != null )
Label3.Text = Request.Cookies["Name"].Value;