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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276536.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276536.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276536.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工作一年后,我有些感悟(寫于2017年)

時間拉回到2016年5月23日&#xff0c;當天拍畢業照&#xff0c;晚上是大學畢業酒會&#xff0c;那一晚整個酒店都彌漫著傷感的氣息。那一晚大家為了找KTV拖延到很晚&#xff0c;最后一群人選擇來到了操場&#xff0c;凌晨兩點多一群人還在操場上玩著游戲。5月25日離校&#xff…

PHP基礎學習之數組使用要點

一、什么是PHP數組&#xff1f;數組 array 是一組有序的變量&#xff0c;其中每個變量都被稱為一個元素。每個元素由一個特殊的標識符來區分&#xff0c;這個標識符稱之為鍵&#xff08;也可以稱之為下標&#xff09;。數組中的每個元素都包含兩項&#xff1a;鍵和值。可以通過…

python和php可以一起用嗎_Apache同時支持PHP和Python的配置方法

最近開始學著用PythonTornadoMongoDB寫網站&#xff0c;興起寫了一個博客&#xff0c;覺得很有意思所以想掛在服務器上發布出去找大家一起玩。這個時候就遇到了問題。服務器是windows系統&#xff0c;安裝的是Apache&#xff0c;所以需要配置Apache&#xff0c;使Apache同時支持…

CCNA課堂精簡筆記

網絡的三層架構:1.接入層: 提供網絡接入點,相應的設備端口相對密集. 主要設備:交換機,集線器.2.匯聚層: 接入層的匯聚點,能夠提供路由決策.實現安全過濾,流量控制.遠程接入. 主要設備:路由器.3.核心層: 提供更快的傳輸速度, 不會對數據包做任何的操作OSI七層網絡模型: Protocol…

PHP判斷客戶端的瀏覽器類型

轉載鏈接:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0516/13461.html #判斷瀏覽器語言&#xff1a; if ($_SERVER[HTTP_ACCEPT_LANGUAGE]"zh-cn") {$c_lang"GB";echo 您的系統語言為<b>簡體中文</b>,系統將自動選擇程序語言為…

高考七年后、工作三年后的感悟

本打算端午假期發表這文章&#xff0c;后來因為文章還需要有些調整&#xff0c;工作日又比較忙&#xff0c;就到今天周三才發。隨便寫了近3000字&#xff0c;文章最后有免費送書活動&#xff0c;歡迎留言參與。又一年高考結束了。轉眼高考過去七年了&#xff0c;工作了三年。很…

螞蟻金服天街:OceanBase 在大促 5 年來的技術演進

為了與金融從業者、科技從業者共同探討金融 業務的深層次問題&#xff0c;螞蟻金服聯手 TGO 鯤鵬會&#xff0c;在 12 月 8 日舉辦了「走進螞蟻金服&#xff1a;雙十一背后的螞蟻金服技術支持」活動。螞蟻金服高級技術專家天街為大家分享了《螞蟻雙 11 大促 OceanBase 核心技術…

禁止訪問Apache目錄

轉載鏈接&#xff1a;http://blog.sina.com.cn/s/blog_505dd27f0100orae.html 在PHP網站開發中&#xff0c;基于WEB服務器和PHP網站程序代碼的安全考慮&#xff0c;我們需要對相關的目錄或者文件訪問權限進行控制&#xff0c;以防止意外情況的發生&#xff0c;那么我們如何來實…

類與結構

目錄 類與結構的實例比較類與結構的差別如何選擇結構還是類類與結構的示例比較 結構示例 public struct Person{string Name;int height;int weightpublic bool overWeight(){//implement something}}類示例 public class TestTime{int hours;int minutes;int seconds;public…

學習 jQuery 源碼整體架構,打造屬于自己的 js 類庫

雖然現在基本不怎么使用 jQuery了&#xff0c;但 jQuery流行 10多年的 JS庫&#xff0c;還是有必要學習它的源碼的。也可以學著打造屬于自己的 js類庫&#xff0c;求職面試時可以增色不少。本文章學習的是 v3.4.1版本。unpkg.com源碼地址&#xff1a;https://unpkg.com/jquery3…

5分鐘輕松教您如果組建100-500路大型拼接監控系統!

冰山融匯百家號17-07-2700:41大型監控系統如何組網&#xff0c;分布式還是集中式&#xff1f;可靠性與性價比又如何取舍&#xff1f;什么才是最合適的視頻監控存儲產品&#xff1f;在不同地區、行業的項目中&#xff0c;這些疑問均成為業主、專家、系統集成商等各方面共同關注的…

python中beautifulsoup_面向新手解析python Beautiful Soup基本用法

Beautiful Soup就是Python的一個HTML或XML的解析庫&#xff0c;可以用它來方便地從網頁中提取數據。它有如下三個特點&#xff1a;Beautiful Soup提供一些簡單的、Python式的函數來處理導航、搜索、修改分析樹等功能。它是一個工具箱&#xff0c;通過解析文檔為用戶提供需要抓取…

(轉)mssql2005生成表字典

出處不詳 CodeSELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder 1 THEN d.name ELSE END AS 表名, CASE WHEN a.colorder 1 THEN isnull(f.value, ) ELSE END AS 表說明, a.colorder AS 字段序號, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id, a.name, IsIdenti…

表操作

2019獨角獸企業重金招聘Python工程師標準>>> 字段修改 alter table TA drop partition (day<2018-12-10); ALTER TABLE TB ADD COLUMNS (userStatus String) CASCADE; ALTER TABLE TC change appversion appCommonVersion String CASCADE; ALTER TABLE TD DROP C…

KindEditor js 路徑修改及表單提交注意事項

參考資料&#xff1a;http://www.kindsoft.net/docs/usage.html 在具體項目中&#xff0c;往往需要將js統一管理&#xff0c;如放置同一目錄js中&#xff0c;那么對應的kindeditor的調用腳本也要跟著變&#xff1a; 目錄結構&#xff1a; |--program |--|--html |--|--|--i…

學習underscore源碼整體架構,打造屬于自己的函數式編程類庫

前言上一篇文章寫了 jQuery整體架構&#xff0c;學習 jQuery 源碼整體架構&#xff0c;打造屬于自己的 js 類庫雖然看過挺多 underscore.js分析類的文章&#xff0c;但總感覺少點什么。這也許就是紙上得來終覺淺&#xff0c;絕知此事要躬行吧。于是決定自己寫一篇學習 undersco…

python xlsx 大文件_Python這樣操作能存儲100多萬行的xlsx文件!Python讓你事半功倍!

(1) 如果excel文件是xls&#xff0c;2003版的&#xff0c;使用xlrd和xlwt庫來對xls文件進行操作(2) 如果excel文件是xlsx&#xff0c;2007以上版的&#xff0c;使用openpyxl庫來對xlsx文件進行操作Tips:xlrd、xlwt和openpyxl非python自帶庫&#xff0c;需要進行安裝&#xff0c…

linux 如何在命令行下改系統時間

我們一般使用“date -s”命令來修改系統時間。比如將系統時間設定成2009年6月1日的命令如下。   #date -s 06/01/2009 或#date -s 20090601 將系統時間設定成下午15點43分0秒的命令如下。   #date -s 15:43:00   注意&#xff0c;這里說的是系統…

拓撲目的 1.Pc9通過van3訪問pc10 2.Pc9通過Vlan1\Vlan2訪問pc11

1拓撲圖2設置路由器R12的接口的IPint g0/0/0ip address 192.168.20.254 24undo shutdown int g0/0/01ip address 192.168.1.1 24undo shutdownint g2/0/00ip address 192.168.3.1 24undo shutdown 3設置路由器R10的接口的IPint g0/0/0ip address 192.168.2.1 24undo shutdownin…

PHP 發送Email的幾種方法

轉載鏈接&#xff1a;http://blog.009it.com/php/75.html 在php中發送Email可以直接調用系統的mail()函數來完成&#xff0c;但是前提是你在php.ini文件中對mail都已經配置好了&#xff0c;以下為相關的配置信息&#xff1a; [mail function] ; For Win32 only. SMTP localho…