跨页面传值常用方法
1.QueryString
2.Form-post控件传递
3.Cookies传递
4.Application传递
5.Session传递(灵活强大)
1.query传值
http://www.baidu.com/webform.aspx?paraName=paraValue&pannel=pvalue2
表示URL带有访问参数?
QueryString
paraName=paraValue&pannel=pvalue2
记忆点:
只能传递2K以内的信息
2K包括URL地址 “http://.......”
获取信息的形式,只能是一个字符串
Server.Transfer,Response.Redirect,的小bug
调用不存在的Request.QueryString["pname"]返回的是null
在保证不会与其他参数重命名时,可以简略写成:Request["pname"];
Defaultset页面
C#
public partial class Defaultset : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnname_Click(object sender, EventArgs e) { string name = txtname.Text; //因为QueryString是通过URL传递的 所以要组建URL string url = "DefaultInfo2.aspx?name="+name; Response.Redirect(url); } protected void btnck_Click(object sender, EventArgs e) { string name = ck.Checked.ToString(); string url = "DefaultInfo2.aspx?check=" + name; Response.Redirect(url); } protected void ck_CheckedChanged(object sender, EventArgs e) { } //一次性传递两个值 protected void btndrl_Click(object sender, EventArgs e) { string name1 =drl.SelectedItem.ToString(); string web = DropDownList1.SelectedItem.ToString(); string url1 = "DefaultInfo2.aspx?nameone="+name1+"&web="+web; Response.Redirect(url1); } }
DefaultInfo2页面 (接收)
protected void Page_Load(object sender, EventArgs e) { linklab.Text = Request.QueryString["id"]; labname.Text = Request.QueryString["name"]; labcheck.Text = Request.QueryString["check"]; //可以简写 labone.Text = Request.QueryString["nameone"]; labtwo.Text = Request.QueryString["web"]; }
总结:
Response 是页面跳转的内置对象
而request 是跨页面传值的属性