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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

页面间传递参数

發(fā)布時(shí)間:2024/8/24 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 页面间传递参数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

常用的兩種基本方式: GET ?POST :兩種方式都是發(fā)送請(qǐng)求,將數(shù)據(jù)發(fā)出去

編程環(huán)境是。net ?,如果是別的編程環(huán)境有一定的不同

一、form 表單

1、form 表單的說明

(表單的提交沒有前后臺(tái)的交互)

數(shù)據(jù)的提交,經(jīng)常關(guān)聯(lián)的是form ?表單提交,

<form id="form1" ?method="get" action="1.aspx" > ??

<form id="form1" ?method="get" action="1.aspx" ?runat="server"> ?:

?當(dāng)出現(xiàn)runat="server"的時(shí)候,它的優(yōu)先級(jí)別比action="1.aspx"高,所以會(huì)出現(xiàn)回發(fā)的現(xiàn)象,把a(bǔ)ction給忽略掉。

我們可以去掉runat="server"來解決這個(gè)問題,還可以在不去掉runat="server"的情況下,根據(jù)修改提交按鈕,并在提交按鈕點(diǎn)擊事件當(dāng)中來解決這個(gè)問題。

不去掉runat="server":

將提交控件改為服務(wù)器控件:

<form?id="form1"?action="1.aspx"?method="post" runat="server">
????<div>
????????<input?id="txtuser"?type="text"? runat="server"/>
????????<input?id="Submit1"?type="submit"?value="提交"? runat="server"/>
</div>?
</form>

然后在提交按鈕的控件當(dāng)中寫著:

Server.Transfer("1.aspx");這個(gè)時(shí)候就可以完成兩個(gè)頁面之間的傳遞了。注意:這里不可以使用Response.Redirect("1.aspx")否則仍然無法完成此操作。

?

(自己調(diào)試出現(xiàn)錯(cuò)誤提示,Server ?未定義 ?,不到萬不得已,form還是不要runat=server了 )

2、表單內(nèi)控件的說明

(1)表單內(nèi)控件,需要服務(wù)器進(jìn)行處理的:讀取數(shù)據(jù)、響應(yīng)函數(shù),都需要 runat=server,否則后臺(tái)服務(wù)器無法讀取到控件。(非服務(wù)器控件的內(nèi)容讀取都是直接在前臺(tái)頁面進(jìn)行的,看到很多都是在js中進(jìn)行操作。

(2)類型“Button”的控件“Button1”必須放在具有 runat=server 的窗體標(biāo)記內(nèi):

? ?如果只是單純的提交數(shù)據(jù),submit用在不加runat=server 的form中就足夠用了,提交給自己,action="",提交給別的頁面 action="1.aspx"

3、get ?post 后臺(tái)讀取數(shù)據(jù)的不同:

get: ? ??string user = Request.QueryString["txtuser"];

post: ? string user = Request.Form["txtuser"];

?二、非form ?表單?

?使用form ?一般和submit 聯(lián)合使用,設(shè)定好提交的方式,post 或get ,設(shè)定好 目標(biāo)頁面,action="" ?或action="1.aspx",

一點(diǎn)按鈕,數(shù)據(jù)自動(dòng)綁定,自動(dòng)就發(fā)送出去了。不用自己綁定,系統(tǒng)自動(dòng)進(jìn)行綁定,很明顯的體現(xiàn)在get中,因?yàn)樵趃et調(diào)用到的目標(biāo)網(wǎng)頁會(huì)是:1.aspx?txtuer=ssss,如果傳遞的參數(shù)是漢字,還會(huì)轉(zhuǎn)換成別的編碼方式:1.aspx?txtuser=%E5%B0%8F%E7%A2%97

這種自動(dòng)綁定相對(duì)應(yīng)的就是 要自己對(duì)數(shù)據(jù)進(jìn)行幫定,設(shè)定數(shù)據(jù)提交的方式,不適用form

1、響應(yīng)重定向 ?

Response.Redirect("jsymGet1.aspx?name="+name.Text+"&age="+age.Text+"傳遞數(shù)據(jù)的方式是"+Request.RequestType);

調(diào)用網(wǎng)址:

http://localhost:10209/10%e3%80%81%e4%bc%a0%e9%80%92%e5%8f%82%e6%95%b0/jsymGet1.aspx?name=1122&age=%e5%b0%8f%e6%9d%8e?

顯示:

name:1122;age=小李 ?傳遞數(shù)據(jù)的方式:GET

?

響應(yīng)重定向方法是目前為止將一個(gè)網(wǎng)頁重定向到另一個(gè)網(wǎng)頁的最簡單的方法的最簡單的方法。當(dāng)Web服務(wù)器接到一個(gè)重定向請(qǐng)求后,它會(huì)將一個(gè)響應(yīng)頭送給客戶端,這將導(dǎo)致客戶端發(fā)送一個(gè)新的請(qǐng)求到服務(wù)器。按句話說,一個(gè)重定向請(qǐng)求實(shí)際上是兩個(gè)請(qǐng)求響應(yīng):一個(gè)是最初的請(qǐng)求響應(yīng),另一個(gè)是新的重定向請(qǐng)求響應(yīng)。

  在ASP.NET中實(shí)現(xiàn)重定向很容易。下面的代碼演示了如何使用Response.Redirect方法實(shí)現(xiàn)網(wǎng)頁重定向:

  ?protected?void?Redirect_Click(object?sender,?EventArgs?e)?
  {
  ????Response.Redirect("menu.aspx");?
  }

??? 要注意的是重定向請(qǐng)求只是一個(gè)GET請(qǐng)求,這就意味著我們不能從源頁中通過重定向命令提交數(shù)據(jù)。但是我們可以在重定向中使用查詢字符串來傳遞數(shù)據(jù)。如下面代碼所示:

  ?protected?void?Redirect_Click(object?sender,?EventArgs?e)?
  {
????????????Response.Redirect("menu.aspx?userName="?+?UserName.Text));?
??????}


  上面的例子將一個(gè)查詢字符串作為參數(shù)傳遞給了Response.Redirect方法的目標(biāo)URL。我們可以通過如下的代碼獲得源數(shù)據(jù)。

??????protected?void?Page_Load(object?sender,?EventArgs?e)?
  {
????????string?userName?=?Request["userName"]; ? ? //如此讀取數(shù)據(jù) ?掩蓋掉了使用的是GET, ?Request.QueryString[],更為明顯
??????}

2、服務(wù)器傳輸方法

? ???Server.Transfer("Menu.aspx",true);?

? ? Response.Redirect和Server.Transfer的比較

  由于Response.Redirect方法要進(jìn)行兩次請(qǐng)求響應(yīng)操作,因此,我們應(yīng)該在對(duì)性能要求高的網(wǎng)站盡量避免使用這種方法。然而,只從技術(shù)上說,使用redirect方式確實(shí)可以從一個(gè)網(wǎng)頁跳到另一個(gè)網(wǎng)頁。相比之下,Server.Transfer會(huì)更有效率,但是跳轉(zhuǎn)的范圍僅限于同一個(gè)Web服務(wù)器的不同網(wǎng)頁。從本質(zhì)上說,我們可以使用Server.Transfer來消除不必要的請(qǐng)求響應(yīng)操作。如果我們需要重定位到不同服務(wù)器的網(wǎng)頁,就需要使用Response.Redirect方法。

? 3、跨頁提交概述 :服務(wù)器控件 的 PostBackURL 屬性

? ? ? ?在ASP.NET 2.0中,我們可以通過實(shí)現(xiàn)IbuttonControl接口提交給不同的WebForm,來實(shí)現(xiàn)跨網(wǎng)頁的提交。和Response.Redirect類似,跨網(wǎng)頁提交是一個(gè)基于客戶端的傳輸機(jī)制,但也有點(diǎn)象Server.Transfer,目標(biāo)網(wǎng)頁也可以訪問源網(wǎng)頁的數(shù)據(jù)。為了使用跨網(wǎng)頁提交,我們需要在源網(wǎng)頁中的PostBackUrl屬性中指定目標(biāo)URL。

? ? ? 這部分將討論一下如何在ASP.NET2.0中實(shí)現(xiàn)跨網(wǎng)頁提交。為了開始我們的學(xué)習(xí),假設(shè)有兩個(gè)Web頁,一個(gè)是源Web頁,另一個(gè)是目標(biāo)Web頁。在源網(wǎng)頁中初始化了使用按鈕進(jìn)行的跨網(wǎng)頁提交操作。我們首先必須設(shè)置目標(biāo)網(wǎng)頁按鈕的PostBackUrl屬性,順便說一句,所有實(shí)現(xiàn)了System.Web.UI.WebControls.IbuttonControl接口的Web控件都有跨網(wǎng)頁提交的特性。下面的代碼將演示這一過程。

   PostBackUrl="~/target.aspx" text = "Post to a target page"/>?
  當(dāng)我們?cè)O(shè)置PostBackUrl屬性時(shí),ASP.NET框架將相應(yīng)的控件綁定到一個(gè)新的叫WebForm_DoPostBackWithOptions的JavaScript函數(shù),產(chǎn)生的Html代碼如下:

   οnclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSubmit", "", false, "","Target.aspx", false, false))" id="btnSubmit" />

  對(duì)于上面的html代碼來說,當(dāng)用戶單擊按鈕時(shí),瀏覽器將提交目標(biāo)URL(Target.aspx),而不是源URL。

轉(zhuǎn)載于:https://www.cnblogs.com/gongyu/p/3975264.html

總結(jié)

以上是生活随笔為你收集整理的页面间传递参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。