明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

asp編程經(jīng)驗(yàn)談:Web程序中頁(yè)面間數(shù)據(jù)傳遞方法小結(jié)

[摘要]介紹   我們總是會(huì)遇到這樣的情況,需要將數(shù)值從一個(gè)網(wǎng)頁(yè)傳遞到另一個(gè)網(wǎng)頁(yè)。在這篇文章中,向你展示了幾種從一個(gè)網(wǎng)頁(yè)向另一個(gè)網(wǎng)頁(yè)傳遞數(shù)值的幾種方法。在此例子中,創(chuàng)建的網(wǎng)頁(yè)由一個(gè)文本控件和幾個(gè)按鈕控件組成。在文本框中輸入的數(shù)據(jù)通過(guò)被標(biāo)識(shí)在按鈕控件中的不同方法從一個(gè)網(wǎng)頁(yè)傳遞到另一個(gè)網(wǎng)頁(yè)。   Respon...

  介紹

  我們總是會(huì)遇到這樣的情況,需要將數(shù)值從一個(gè)網(wǎng)頁(yè)傳遞到另一個(gè)網(wǎng)頁(yè)。在這篇文章中,向你展示了幾種從一個(gè)網(wǎng)頁(yè)向另一個(gè)網(wǎng)頁(yè)傳遞數(shù)值的幾種方法。在此例子中,創(chuàng)建的網(wǎng)頁(yè)由一個(gè)文本控件和幾個(gè)按鈕控件組成。在文本框中輸入的數(shù)據(jù)通過(guò)被標(biāo)識(shí)在按鈕控件中的不同方法從一個(gè)網(wǎng)頁(yè)傳遞到另一個(gè)網(wǎng)頁(yè)。

  Response.Redirect

  讓我們首先看一看如何使用Response.Redirect方法傳遞數(shù)據(jù)。這是它們之中最簡(jiǎn)單的方法。在文本框中輸入一些數(shù)據(jù),并且當(dāng)你輸入完成數(shù)據(jù)后,按下“Respose.Redirect”按鈕。我們會(huì)得到一個(gè)提示,有時(shí)我們想在catch程序中傳遞另一個(gè)網(wǎng)頁(yè),意味著捕捉到例外程序并且向另一個(gè)網(wǎng)頁(yè)傳遞。如果你試圖這樣做,它會(huì)給你一個(gè)System.Threading例外程序。因?yàn)槟阆脒z留下一個(gè)線程向另一個(gè)網(wǎng)頁(yè)傳遞數(shù)據(jù),所以這個(gè)例外程序就會(huì)被拋出。

  Response.Redirect("WebForm5.aspx",false);

  這個(gè)語(yǔ)句告訴編譯器定位到“WebForm5.aspx”,這里的“false”意味著在當(dāng)前網(wǎng)頁(yè)不能結(jié)束你正在做的事情。應(yīng)該看一看線程發(fā)布命令的System.Threading類(lèi)。在下面,看一看按鈕事件的C#代碼!皌xtName”文本控件的名字,文本框的內(nèi)的值傳遞到一個(gè)叫做“WebForm5.aspx”的網(wǎng)頁(yè)。在“?”之后的“Name”符號(hào)只是一個(gè)臨時(shí)的響應(yīng)變量,這個(gè)變量保持著文本的數(shù)值。

  private void Button1_Click(object sender, System.EventArgs e)

  {

  // Value sent using HttpResponse

  Response.Redirect("WebForm5.aspx?Name="+txtName.Text);

  }

  好的,到這種觀點(diǎn)為止,你使用Response發(fā)送了數(shù)值。剛剛,在此我收集到了這些數(shù)值,所以在“WebForm5.aspx”page_Load事件中,寫(xiě)入這些代碼。首先,我們檢查到輸入的值不為null。如果不是這樣,我們只是簡(jiǎn)單地在網(wǎng)頁(yè)上使用Label控件顯示數(shù)值。注意:如果你使用Response.Redirect方法來(lái)傳遞這些數(shù)值,所有這些數(shù)值在瀏覽器的URL中都是不可見(jiàn)的。你絕不能使用Response.Redirect來(lái)傳遞信用證號(hào)碼和機(jī)密信息。

  if (Request.QueryString["Name"]!= null)

  Label3.Text = Request.QueryString["Name"];

  Cookies

  接下來(lái)使用Cookies。Cookies在服務(wù)器端創(chuàng)建,但是客戶(hù)端省略。在此 “Cookies” 按鈕的click事件中,寫(xiě)入以下代碼:

  HttpCookie cName = new HttpCookie("Name");

  cName.Value = txtName.Text;

  Response.Cookies.Add(cName);

  Response.Redirect("WebForm5.aspx");

  首先,創(chuàng)建一個(gè)cookie命名為“cName”。既然一個(gè)cookie實(shí)例可以擁有許多數(shù)值,告訴編譯器這個(gè)cookie持有“Name”數(shù)值。我們將它賦值給TextBox并且最結(jié)后將它加入Response流,再使用Response.Redirect方法傳遞給其它網(wǎng)頁(yè)。

  讓我們看一看如何得到被另一個(gè)網(wǎng)頁(yè)傳遞的cookie數(shù)值。

  if (Request.Cookies["Name"] != null )

  Label3.Text = Request.Cookies["Name"].Value;

  如你所看到的,象我們以前做一的一樣正是使用同一種方法,剛剛我們?cè)赗equest.QueryString之內(nèi),使用了Request.Cookies。記注一些瀏覽器不接收cookies。

[1] [2]  下一頁(yè)