Microsoft 的网站里有相关的说明wenform1.aspx 中加入一个属性Public Readonly Property Property1() as string Get return ...DataTable End Get 然后再本页的按钮事件中加入 Server.Transfer("webform2.aspx") webform2 定义一个公共全局变量 Public sourcePage as webForm1 If not Page.IsPostBack Then SourcePage =Ctype(Context.Handler,WebForm1) label1.Text = sourcePage.Property1
1)request方式:仅适用于一个或多个字符串
Response.Redirect("webform2.aspx?myid=123&myname=eddie005");
取: string myID = Request.QueryString["myid"];
string myName = Request.QueryString["myname"];
但是该方法传参遇到特殊的字符例如“”&、“+”等就会有问题,所以需要进行编码转换:
string tmpID = Server.UrlEncode("123");
string tmpName = Server.UrlEncode("暴&走");
Response.Redirect("webform1.aspx?myid=" + tmpID + "&myname=" + tmpName);
取: string myID = Server.UrlDecode(Request.QueryString["myid"]);
string myName = Server.UrlDecode(Request.QueryString["myname"]);
对应的Javascript函数是escape()和unescape()2)Session:适用于对象
存:Session["myTable"] = new DataTable();
取:DataTable tmp = Session["myTable"] as DataTable;3)Server.Transfer:适用于对象
webForm1:
public int MyAge
{
get{return Convert.ToInt32(TextBox1.Text);}
}
public DataTable MyTable
{
get{return myDataTable;}
} private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("webForm2.aspx");
}
webForm2:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
if(Context.Handler.ToString()=="ASP.webForm1_aspx")
{
webForm1 webForm =(webForm)Context.Handler;
int myAge = webForm.MyAge;
DataTable tmpTable = webForm.MyTable;
}
}
}
Get
return ...DataTable
End Get
然后再本页的按钮事件中加入
Server.Transfer("webform2.aspx")
webform2
定义一个公共全局变量
Public sourcePage as webForm1
If not Page.IsPostBack Then
SourcePage =Ctype(Context.Handler,WebForm1)
label1.Text = sourcePage.Property1
他讲的很清楚了
application,Context.Items[]
不过不知道QueryString有没有长度限制。