在論壇上看到的,有三種辦法,第一種是傳統的get方法,在.Net種稍微變化了下,用responst.redirect(url)來進行傳遞,用request.querystring來得到值。第2種是用session,但是要注意session用後要顯示的消除,消除的格式是Server.remove("aaaa"),這裡的aaaa是指session["aaaa"]中的aaaa,這個要注意,因為用多了SESSION是運行在服務器的,用多了對性能有影響。第3種方法是server.transfer(), 代碼如下
public string Var1
{
get
{
return TextBox1.Text;
}
}
public string Var2
{
get
{
return TextBox2.Text;
}
}
// 然後調用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("webform1.ASPx");
}
目標頁面代碼:
private void Page_Load
(object sender, System.EventArgs e)
{
//create instance of source web form
WebForm1 wf1;
//get reference to current handler instance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Var1;
Label2.Text=wf1.Var2;
}
幫助文檔上的話
注意
request對象實際上操作system.web 命名空間中的類httprequest。當客戶發出請求執行ASP.Net時,CLR會將客戶端請求信息包裝在Request對象中。
這些請求信息包括請求報頭、客戶端基本信息(浏覽器信息、浏覽器版本號、用戶所用的語言、編碼方式等)、請求方法(post、get)、參數名、參數值等。Request對象的調用方法為:
Request.collection[“variable”]
其中collection包括QueryStrin、Form、CookIEs、ServerVariables四種集合,將Request.QueryString["var1"]寫為Request["var1"]看起來也可以,但這樣作其實不是一種好的方法,因為省掉collection選項後,Request會按照QueryString、Form、CookIEs、ServerVariables的順序進行搜索直到發現“variable”所指的關鍵字並返回其值,沒有找到則返回(null)。因此為了提供程序的執行效率,最好還是指定collection,過多地搜索會影響程序執行的效率。