Asp.Net頁面傳值的方法
一、Resonse.Redirect():
//Method1 Response.Redirect
string name = this.lb_Name.Text;
Response.Redirect("TargetPage.aspx?name=" + name);//優點傳值簡單;缺點:安全性低、不能傳遞陣列和物件
二、Session
/*Method2 Session
* 優點:使用簡單,不僅能傳遞簡單資料型別,還能傳遞物件。2.資料量大小是不限制的。
* 缺點:1.在Session變數儲存大量的資料會消耗較多的伺服器資源。2.容易丟失。
* 銷燬的方法是:清除一個:Session.Remove("session名");清除所有:Session.Clear();
* 注意區別Application和Session:前者所有的使用者共用的全域性變數,後者是各個使用者獨有的全域性變數。
* */
Session["Name"] = name;
//Response.Redirect("TargetPage.aspx");
三、Application
/*Method3 Application
* 優點:使用簡單,消耗較少的伺服器資源。2.不僅能傳遞簡單資料,還能傳遞物件。3.資料量大小是不限制的。
* 缺點:1.作為全域性變數容易被誤操作。所以單個使用者使用的變數一般不能用application。
*
* 注意:常用lock和unlock方法用來鎖定和解鎖,為了防止併發修改。
*
* */
Application["Name"] = this.Label1.Text;
方法四 Cookie:
/*Method 4 Cookies
*
* */
HttpCookie hc = new HttpCookie("Name", this.Label10.Text);
Response.Cookies.Add(hc);
//Response.Redirect("TargetPage.aspx");
方法五:Server.Transfer
/*Method 5 Server.Transfer();
*優點:1.直接在伺服器端重定向,使用簡單方便,減少了客戶端對伺服器端提出請求。2.可以傳遞各種資料型別的值和控制元件的值。
*缺點: 1.客戶端瀏覽器中的URL地址是不改變,會導致在新的頁面可能出現一些意想不到的問題。比如如果源頁面和目的頁面不在同一個虛擬目錄或其子目錄下,那麼使用相對路徑的圖片、超連結都會導致錯誤的指向。
* 比較Server.Transfer和Response.Redirect的區別。
(1)Server.Transfer在伺服器端完成,所以客戶端瀏覽器中的URL地址是不會改變的;Response.Redirect是客戶端完成,向伺服器端提出新的頁面處理請求,所以客戶端瀏覽器中的URL地址是會改變的。
(2)Server.Transfer在伺服器端完成,不需要客戶端提出請求,減少了客戶端對伺服器端提出請求。
(3)Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,也就是工程專案中的頁面,而Response.Redirect則十分靈活,可以跳轉到任何URL地址。
(4)Server.Transfer可以將前一個頁面的各種型別的值傳到新的頁面;Response.Redirect則只能藉助URL中帶引數或是結合上面四種辦法把各種型別的值傳到新的頁面。
* * */
Server.Transfer("TargetPage.aspx",false);
//Server.Transfer 傳值
public string Lb_Name
{
get { return this.lb_Name.Text; }
}
使用Server.Transfer時在頁面定義一個屬性,在目標頁面使用Context.Handler獲取傳遞頁面物件eg:
SourcePage sp = (SourcePage)Context.Handler;//可以獲取SourcePage頁面的所有物件
this.TextBox4.Text = sp.Lb_Name;
目標頁接收傳遞過來的值:
string name = Request.QueryString["Name"];
this.tb_value.Text = name;
this.TextBox1.Text = Session["Name"].ToString();
Application.Lock();
this.TextBox2.Text = Application["Name"].ToString();
Application.UnLock();
this.TextBox3.Text = Request.Cookies["Name"].Value.ToString();
SourcePage sp = (SourcePage)Context.Handler;//可以獲取SourcePage頁面的所有物件(SourcePage 為跳轉之前的頁面)
this.TextBox4.Text = sp.Lb_Name;
//Method1 Response.Redirect
string name = this.lb_Name.Text;
Response.Redirect("TargetPage.aspx?name=" + name);//優點傳值簡單;缺點:安全性低、不能傳遞陣列和物件
二、Session
/*Method2 Session
* 優點:使用簡單,不僅能傳遞簡單資料型別,還能傳遞物件。2.資料量大小是不限制的。
* 缺點:1.在Session變數儲存大量的資料會消耗較多的伺服器資源。2.容易丟失。
* 銷燬的方法是:清除一個:Session.Remove("session名");清除所有:Session.Clear();
* 注意區別Application和Session:前者所有的使用者共用的全域性變數,後者是各個使用者獨有的全域性變數。
* */
Session["Name"] = name;
//Response.Redirect("TargetPage.aspx");
三、Application
/*Method3 Application
* 優點:使用簡單,消耗較少的伺服器資源。2.不僅能傳遞簡單資料,還能傳遞物件。3.資料量大小是不限制的。
* 缺點:1.作為全域性變數容易被誤操作。所以單個使用者使用的變數一般不能用application。
*
* 注意:常用lock和unlock方法用來鎖定和解鎖,為了防止併發修改。
*
* */
Application["Name"] = this.Label1.Text;
方法四 Cookie:
/*Method 4 Cookies
*
* */
HttpCookie hc = new HttpCookie("Name", this.Label10.Text);
Response.Cookies.Add(hc);
//Response.Redirect("TargetPage.aspx");
方法五:Server.Transfer
/*Method 5 Server.Transfer();
*優點:1.直接在伺服器端重定向,使用簡單方便,減少了客戶端對伺服器端提出請求。2.可以傳遞各種資料型別的值和控制元件的值。
*缺點: 1.客戶端瀏覽器中的URL地址是不改變,會導致在新的頁面可能出現一些意想不到的問題。比如如果源頁面和目的頁面不在同一個虛擬目錄或其子目錄下,那麼使用相對路徑的圖片、超連結都會導致錯誤的指向。
* 比較Server.Transfer和Response.Redirect的區別。
(1)Server.Transfer在伺服器端完成,所以客戶端瀏覽器中的URL地址是不會改變的;Response.Redirect是客戶端完成,向伺服器端提出新的頁面處理請求,所以客戶端瀏覽器中的URL地址是會改變的。
(2)Server.Transfer在伺服器端完成,不需要客戶端提出請求,減少了客戶端對伺服器端提出請求。
(3)Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,也就是工程專案中的頁面,而Response.Redirect則十分靈活,可以跳轉到任何URL地址。
(4)Server.Transfer可以將前一個頁面的各種型別的值傳到新的頁面;Response.Redirect則只能藉助URL中帶引數或是結合上面四種辦法把各種型別的值傳到新的頁面。
* * */
Server.Transfer("TargetPage.aspx",false);
//Server.Transfer 傳值
public string Lb_Name
{
get { return this.lb_Name.Text; }
}
使用Server.Transfer時在頁面定義一個屬性,在目標頁面使用Context.Handler獲取傳遞頁面物件eg:
SourcePage sp = (SourcePage)Context.Handler;//可以獲取SourcePage頁面的所有物件
this.TextBox4.Text = sp.Lb_Name;
目標頁接收傳遞過來的值:
string name = Request.QueryString["Name"];
this.tb_value.Text = name;
this.TextBox1.Text = Session["Name"].ToString();
Application.Lock();
this.TextBox2.Text = Application["Name"].ToString();
Application.UnLock();
this.TextBox3.Text = Request.Cookies["Name"].Value.ToString();
SourcePage sp = (SourcePage)Context.Handler;//可以獲取SourcePage頁面的所有物件(SourcePage 為跳轉之前的頁面)
this.TextBox4.Text = sp.Lb_Name;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28699126/viewspace-757400/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- asp.net 頁面傳值方法ASP.NET
- ASP.NET頁面之間的幾種傳值方法ASP.NET
- ASP.NET頁面傳值基本方式ASP.NET
- ASP.NET頁面間傳值彙總ASP.NET
- JSP頁面間傳值方法JS
- 七道最經典的asp.net頁面傳值題ASP.NET
- ASP.NET 頁面間資料傳遞方法ASP.NET
- ASP.NET跨頁面傳值技巧(VB.NET篇)ASP.NET
- 在兩個ASP.NET頁面之間傳遞值 (轉)ASP.NET
- React Router v4 頁面傳值的三種方法React
- JavaWeb開發之頁面傳值JavaWeb
- 請寫出在ASP.NET中常用的幾種頁面間傳值的方法,並說出它們的特點。ASP.NET
- IOS學習筆記(頁面傳值:屬性傳值,協議代理傳值,閉包傳值)iOS筆記協議
- 專案分享三:頁面之間的傳值
- 頁面間傳值與跳轉的區別
- ASP.NET頁面跳轉的三種方法ASP.NET
- 在cs頁面獲取input的值方法
- Flutter11 路由、頁面傳值、NavigatorFlutter路由
- Flutter多個頁面廣播通知傳值Flutter
- [MUI] mui框架實現頁面間傳值UI框架
- iOS——使用StroryBoard頁面跳轉及傳值iOS
- 頁面傳值地址爛亂碼問題
- Vue 頁面狀態保持頁面間資料傳輸的一種方法Vue
- 如何利用javascript實現頁面間互相傳值JavaScript
- js為showModalDialog()彈出視窗的頁面傳值JS
- ASP.NET頁面重新整理方法總結ASP.NET
- ASP.NET頁面事件:順序與回傳詳解ASP.NET事件
- ASP.NET頁面重新整理方法總結(收藏)ASP.NET
- HTML5 Web儲存 頁面間進行傳值HTMLWeb
- Asp.Net中動態頁面轉靜態頁面ASP.NET
- asp.net 頁面載入ASP.NET
- ASP.NET頁面Trace技巧ASP.NET
- javascript兩個靜態頁面之間傳遞和接收值JavaScript
- 靜態頁面之間傳值簡單程式碼例項
- js通過contentWindow控制iframe子頁面元素點選事件,並把值傳給父頁面JS事件
- 網頁間傳值怎麼傳網頁
- asp.net mvc 錯誤頁面ASP.NETMVC
- asp.net 頁面 生命週期ASP.NET