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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- React Router v4 頁面傳值的三種方法React
- 請寫出在ASP.NET中常用的幾種頁面間傳值的方法,並說出它們的特點。ASP.NET
- 後臺向vue頁面傳值Vue
- JavaWeb開發之頁面傳值JavaWeb
- 多頁面-HASH-頁面間傳值 Sloth-state
- Flutter11 路由、頁面傳值、NavigatorFlutter路由
- Flutter多個頁面廣播通知傳值Flutter
- [MUI] mui框架實現頁面間傳值UI框架
- Vue 頁面狀態保持頁面間資料傳輸的一種方法Vue
- HTML5 Web儲存 頁面間進行傳值HTMLWeb
- asp.net mvc 錯誤頁面ASP.NETMVC
- Asp.Net分頁生成頁碼超連結方法ASP.NET
- jsp頁面通過url向後臺傳值時的中文亂碼問題JS
- JS的方法引數傳遞(按值傳遞)JS
- 禁止頁面滾動的方法
- ASP.NET Web Forms – HTML 頁面簡介ASP.NETWebORMHTML
- datagrid 頁面新增合計值
- keycloak~從login-status-iframe頁面總結如何跨域傳值~續跨域
- ASP.NET Core 5.0 MVC中的 Razor 頁面 介紹ASP.NETMVC
- WebForm 頁面ajax 請求後臺頁面 方法WebORM
- js-關於iframe:從子頁面給父頁面的控制元件賦值方法JS控制元件賦值
- ASP.NET Web Pages – 頁面佈局簡介ASP.NETWeb
- uni app頁面傳參decodeURIComponentAPP
- 頁面跳轉的幾種方法
- 頁面資料賦值轉換賦值
- router-view子頁面呼叫父頁面方法更新父頁面引數View
- 頁面渲染傳參的方式 – Node實戰
- Jquery Ajax方法傳值到actionjQuery
- php7 設定404頁面,zblogphp的404頁面設定方法PHP
- ASP.NET Core 入門教程 5、ASP.NET Core MVC 檢視傳值入門ASP.NETMVC
- 頁面之間傳遞資料
- SSRS頁面配置Postgresql data source的方法SQL
- js 進入頁面載入的方法JS
- 小程式 `navigateBack` 反向傳值給上一頁
- 頁面劫持,頁面劫持,如果被頁面劫持了該怎麼去解決,方法分享
- 微信小程式 傳值取值的方法總結微信小程式
- 前端頁面優化,減少 reflow 的方法前端優化
- asp.net mvc檢視傳遞資料至另一頁的檢視ASP.NETMVC
- JSp頁面使用El表示式取不到值JS