程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET頁面間傳值方式

ASP.NET頁面間傳值方式

編輯:關於ASP.NET

1.使用QueryString,  如....?id=1; response. Redirect()....

2.使用Session變量

3.使用Server.Transfer

4.使用Cookie傳值

5.Application

6.<input type="hidden"></input>

7.數據庫

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;

顯然,步驟跟上一種方法非常相似,只是使用Request.Cookies代替了Request.QueryString。

注:一些浏覽器是不支持Cookies的。

3. Session 變量

接下來我們看看在服務端維持的Session變量。 Session在用戶向服務端發出首次請求時被創建,而在用戶關閉浏覽器或異常發生時終止(其實還有過期的情況)。下面的代碼是用Session來傳值的 例子。 我們可以看到 Session 為用戶創建了“Name” 鍵,並把TextBox的值賦給它。

// Session 創建
    
Session["Name"] = txtName.Text; 
    
Response.Redirect("WebForm5.aspx");
    
    
    
// 下面的代碼顯示如何從Session中取值
    
// 代碼放在其它頁面中
    
    
    
if(Session["Name"] != null) 
    
    Label3.Text = Session["Name"].ToString();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved