ASP.NET跨頁面傳值
跨頁面傳值是學習asp.net初期都會遇到的的一個問題,但總結下來,跨頁面傳值常用的有QueryString,Session,Cookies,Application等幾種。
那么現在就簡單說下第一種方法——QueryString ( Request/Response )。
QueryString
QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對於傳遞數組或對象的話,就不能用這個方法了。
這種方法的優點:
1.使用簡單,對於安全性要求不高時傳遞數字或是文本值非常有效。
這種方法的缺點:
1.缺乏安全性,由於它的值暴露在瀏覽器的URL地址中的。
2.不能傳遞對象。
使用方法:
1.在源頁面的代碼中用需要傳遞的名稱和值構造URL地址。
2.在源頁面的代碼用Response.Redirect(URL);重定向到上面的URL地址中。
3.在目的頁面的代碼使用Request.QueryString["name"];取出URL地址中傳遞的值。
Request —— 獲取請求對象
Response —— 響應對象
注意:不同瀏覽器URL最大長度(字符數)也不相同
IE:2048
Firefox (Browser):65,536 (實際達不到)
Google (chrome):8182
例1:
頁面(一)a.aspx
private void Button1_Click(object sender, System.EventArgs e) { string s_url; s_url = "b.aspx?name=" + Label1.Text; Response.Redirect(s_url); }
頁面(二)b.aspx
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
例2:
頁面(一)a.aspx
private void Button1_Click(object sender, System.EventArgs e) { string s = TextbBox1.Text; Response.Redirect("b.aspx?name=" + s); //括號雙引號中字符串不能有空格,除非必需; } //多參數 : 字符串拼接方法 - ("b.aspx?name=" + s + "&pwd=" + pwd)
頁面(二)b.aspx
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request["name"];
}
