ASP.NET跨页面传值——QueryString
ASP.NET跨页面传值
跨页面传值是学习asp.net初期都会遇到的的一个问题,但总结下来,跨页面传值常用的有QueryString,Session,Cookies,Application等几种。
那么现在就简单说下第一种方法——QueryString ( Request/Response )。
QueryString
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。
这种方法的优点:
1.使用简单,对于安全性要求不高时传递数字或是文本值非常有效。
这种方法的缺点:
1.缺乏安全性,由于它的值暴露在浏览器的URL地址中的。
2.不能传递对象。
使用方法:
1.在源页面的代码中用需要传递的名称和值构造URL地址。
2.在源页面的代码用Response.Redirect(URL);重定向到上面的URL地址中。
3.在目的页面的代码使用Request.QueryString["name"];取出URL地址中传递的值。
Request —— 获取请求对象
Response —— 响应对象
注意:不同浏览器URL最大长度(字符数)也不相同
IE:2048
Firefox (Browser):65,536 (实际达不到)
Google (chrome):8182
例1:
页面(一)a.aspx
private void Button1_Click(object sender, System.EventArgs e) { string s_url; s_url = "b.aspx?name=" + Label1.Text; Response.Redirect(s_url); }
页面(二)b.aspx
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
例2:
页面(一)a.aspx
private void Button1_Click(object sender, System.EventArgs e) { string s = TextbBox1.Text; Response.Redirect("b.aspx?name=" + s); //括号双引号中字符串不能有空格,除非必需; } //多参数 : 字符串拼接方法 - ("b.aspx?name=" + s + "&pwd=" + pwd)
页面(二)b.aspx
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request["name"];
}