|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。web|程序|数据|网页先容
我们老是会碰到如许的情形,必要将数值从一个网页传送到另外一个网页。在这篇文章中,向你展现了几种从一个网页向另外一个网页传送数值的几种办法。在此例子中,创立的网页由一个文本控件和几个按钮控件构成。在文本框中输出的数据经由过程被标识在按钮控件中的分歧办法从一个网页传送到另外一个网页。
Response.Redirect
让我们起首看一看怎样利用Response.Redirect办法传送数据。这是它们当中最复杂的办法。在文本框中输出一些数据,而且当你输出完成数据后,按下“Respose.Redirect”按钮。我们会失掉一个提醒,偶然我们想在catch程序中传送另外一个网页,意味着捕获到破例程序而且向另外一个网页传送。假如你试图如许做,它会给你一个System.Threading破例程序。由于你想遗留下一个线程向另外一个网页传送数据,以是这个破例程序就会被抛出。
Response.Redirect("WebForm5.aspx",false);
这个语句告知编译器定位到“WebForm5.aspx”,这里的“false”意味着在以后网页不克不及停止你正在做的事变。应当看一看线程公布命令的System.Threading类。鄙人面,看一看按钮事务的C#代码。“txtName”文本控件的名字,文本框的内的值传送到一个叫做“WebForm5.aspx”的网页。在“?”以后的“Name”标记只是一个一时的呼应变量,这个变量坚持着文本的数值。
privatevoidButton1_Click(objectsender,System.EventArgse)
{
//ValuesentusingHttpResponse
Response.Redirect("WebForm5.aspx?Name="+txtName.Text);
}
好的,到这类概念为止,你利用Response发送了数值。方才,在此我搜集到了这些数值,以是在“WebForm5.aspx”page_Load事务中,写进这些代码。起首,我们反省到输出的值不为null。假如不是如许,我们只是复杂地在网页上利用Label控件显现数值。注重:假如你利用Response.Redirect办法来传送这些数值,一切这些数值在扫瞄器的URL中都是不成见的。你毫不能利用Response.Redirect来传送信誉证号码和秘密信息。
if(Request.QueryString["Name"]!=null)
Label3.Text=Request.QueryString["Name"];
Cookies
接上去利用Cookies。Cookies在服务器端创立,可是客户端省略。在此“Cookies”按钮的click事务中,写进以下代码:
HttpCookiecName=newHttpCookie("Name");
cName.Value=txtName.Text;
Response.Cookies.Add(cName);
Response.Redirect("WebForm5.aspx");
起首,创立一个cookie定名为“cName”。既然一个cookie实例能够具有很多数值,告知编译器这个cookie持有“Name”数值。我们将它赋值给TextBox而且最结后将它到场Response流,再利用Response.Redirect办法传送给别的网页。
让我们看一看怎样失掉被另外一个网页传送的cookie数值。
if(Request.Cookies["Name"]!=null)
Label3.Text=Request.Cookies["Name"].Value;
如你所看到的,象我们之前做一的一样恰是利用统一种办法,方才我们在Request.QueryString以内,利用了Request.Cookies。记注一些扫瞄器不吸收cookies。
SessionVariables
接上去我们看一看session变量,这些变量由服务器来处置。第一个响影一从客户端传送到服务器,Sessions就创立了,而且当用户封闭扫瞄器窗口大概一些非常操纵产生,session就会停止。给你一些可使用session变量来传送数值的办法。鄙人面你看到为用户创立的Session和“Name”是关头字,也如出名的Session关头字一样,关头字被赋给TextBox数值。
//SessionCreated
Session["Name"]=txtName.Text;
Response.Redirect("WebForm5.aspx");
//Thecodebelowshowshowtogetthesessionvalue.
//Thiscodemustbeplacedinotherpage.
if(Session["Name"]!=null)
Label3.Text=Session["Name"].ToString();
ApplicationVariables
偶然,我们必要存取来自网页任何中央的数值。由于那样,可使用Application变量。这里有一小段代码,这段代码显现怎样做到那些事变。一旦创立Application变量而且为其赋值,在使用程序的任何中央都能够从头失掉它的值。
//ThissetsthevalueoftheApplicationVariable
Application["Name"]=txtName.Text;
Response.Redirect("WebForm5.aspx");
//ThisishowweretrievethevalueoftheApplicationVariable
if(Application["Name"]!=null)
Label3.Text=Application["Name"].ToString();
HttpContext
可使用HttpContext从网页中从头失掉数值。经由过程利用办法的属性取得那些数值。既然它们易于编写代码和修正,利用属性是一种好办法。在你的第一个网页中,打造一个属性,这个属性能够前往TextBox的值。
publicstringGetName
{
get{returntxtName.Text;}
}
我们利用Server.Transfer来将此控件发送到一个新网页。注重:Server.Transfer仅仅将此控件传送到新的网页而且不从头定位该网页,这意味着你会看到在URL中旧网页的地点。复杂地在“Server.Transfer”按钮单击事务,而且增添以下代码。
Server.Transfer("WebForm5.aspx");
如今,让我们定位网页,数值就传送到该网页上,在这类情形下利用的该网页是“webForm5.aspx”。
//YoucandeclarethisGloballyorinanyeventyoulike
WebForm4w;
//GetsthePage.ContextwhichisAssociatedwiththispage
w=(WebForm4)Context.Handler;
//AssigntheLabelcontrolwiththeproperty"GetName"whichreturnsstring
Label3.Text=w.GetName;
SpecialNote
出格注重与你看到的一样,从一个网页向别一网页传送数值时有分歧的办法。每个办法有它本人的长处也有其弱点。以是,当你传送数值时,选择好你所必要的以是你就会有一种好办法,这类办法对你是最为可行的。
</p>缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。 |
|