页面间传参的常用方式
1页面间传参的常用方式
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;
}
}
}