日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET跨页传值方法汇总

發布時間:2023/12/10 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET跨页传值方法汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

方法一:問號傳值(Response.Redirect方法)

1:源頁:在按鈕的點擊事件程序中寫入Response.Redirect方法,在其中使用問號傳值。如:

Response.Redirect("Default2.aspx?id="+txtId.Text.Trim()+"&name="+Server.UrlEncode(txtName.Text.Trim()));

HTML代碼中可以這樣寫:

<a?href="Default2.aspx?id=1&name=aa">跳轉</a>??//多個值用&相連,注意&兩邊不要加空格

2:目標頁:在Request.QueryString集合中查找。

如:Response.Write("ID?is?"+Request.QueryString["id"].ToString());

或者:<%?=Request.QueryString["id"]?%>

特點:簡單方便,可以跨WEB服務器,但效率低。當Web服務器接到一個重定向請求后,它會將一個響應頭送給客戶端,這將導致客戶端發送一個新的請求到服務器。按句話說,一個重定向請求實際上是兩個請求響應。如果想要傳遞一個安全性不太重要或一個結構簡單的數值時,用此法最容易。

方法二:使用Server.Transfer

1:源頁:在按鈕的點擊事件程序中寫入:??Server.Transfer("Default2.aspx",?true);???注意一定要加上第二個參數true,否則值傳不過去。

2:?目標頁:在Request.Form集合中查找發送方頁面上的文本框架ID,如

Response.Write("傳過來的名字是:"+Request.Form["txtName"].ToString());

特點:跳轉的范圍僅限于同一個Web服務器的不同網頁,且在地址欄中顯示的仍是原網頁的地址,不便于調試,但屬于服務器端的直接重定向,效率比Response.Redirect方法高。

Response.Redirect和Server.Transfer的比較
由于Response.Redirect方法要進行兩次請求響應操作,因此,我們應該在對性能要求高的網站盡量避免使用這種方法。然而,只從技術上說,使用redirect方式確實可以從一個網頁跳到另一個網頁。相比之下,Server.Transfer會更有效率,但是。從本質上說,我們可以使用?Server.Transfer來消除不必要的請求響應操作。如果我們需要重定位到不同服務器的網頁,就需要使用Response.Redirect方法。

方法三:使用PostBackUrl

從ASP.NET2.0開始,可以使用PostBackUrl實現跨頁傳值。

1:源頁:在實現了IbuttonControl接口的控件(如按鈕、LinkButton等)上,添加屬性PostBackUrl="~/Default2.aspx"

2:?目標頁:使用PreviousPage屬性,且最好判斷一下是否是從發送頁以PostBackUrl方式跳轉過來的,代碼如下所示:

????????if(PreviousPage!=null?&&?PreviousPage.IsCrossPagePostBack?&&

??????????PreviousPage.IsValid)

????????{

????????????TextBox?txt?=?(TextBox)PreviousPage.FindControl("txtName");

????????????Response.Write(txt.Text);

????????}

若要獲取源頁的公共成員(例如某個屬性的值),必須先獲取對源頁的強類型引用。例如:

源頁中有如下屬性:public?String?CurrentCity{????get????{?return?textCity.Text;???}}

目標頁:<%@?PreviousPageType?VirtualPath="~/SourcePage.aspx"?%>

Label1.Text?=?PreviousPage.CurrentCity;

特點:底層通過javascript函數和保存視圖狀態的__POSTBACK的隱藏字段實現。具體效率應該較高。

方法四:使用Application對象變量

1:源頁:?保存信息,建議同時使用Lock和UnLock方法。

Application.Lock();

Application["PageRequestCount"]?=?

????((int)Application["PageRequestCount"])+1;

Application.UnLock();

2:目標頁:int?cnt=int.Parse(Application["PageRequestCount"].ToString());

特點:全局變量,所有用戶可見,常用在聊天室程序中。

方法五:使用Session

1:源頁:保存信息

Session["Name"]=?txtName.Text;


2:目標頁?string?name=Session["Name"].ToString();

Session對象變量若存儲過多的數據則會消耗大量的服務器資源,在使用時尤其要注意控制數量。

方法六:使用Cookie

1:源頁:?HttpCookie?Name=?new?HttpCookie("Name");
??????Name.Value=?txtName.Text;

cookie.Expires?=?DateTime.Now.AddMinutes(30);

HttpContext.Current.Response.AppendCookie(Name);

2:目標頁:string?info?=Request.Cookies["cookiename"].Value;

或者:

HttpCookie?acookie=Request.Cookie("cookiename");//通過Request獲取acookie對象
?string?aa=acookie.Value.ToString();//在通過Value屬性獲取值基本上和Response用法相似。在獲取cookie之前,應確保該cookie確實存在。否則,您將得到一個system.NullReferenceException

注:后面三種方法用的是三大對象,各自的特點請參考其他資料。

轉載于:https://www.cnblogs.com/lgzslf/archive/2009/05/21/1486362.html

總結

以上是生活随笔為你收集整理的ASP.NET跨页传值方法汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。