做Asp.net网页开发时所用到的页面传值方法:总共有六种:1.通过Querystring这个方法来传值;2.使用Seesion来传值;3.使用
Server.Transfer方法来传值;4.Cookies来传值;5.使用Application来传值;6.使用PreviosPage的方式来传值;
今天先来简述一下第一种通过Querystring方式来进行传递值:
1.优点、缺点
优点:
使用简单,适合传递一些安全性比较低的数字或是文本。
缺点:
不能够传递对象,安全性太差,它传递的值都会暴露在URL地址栏中。缺乏安全性。
2.使用方法:
(1)首先要在第一个页面中构造一个含有参数以及带值且有效的URL地址;
(2)在这个页面中一个中的一个跳转按钮中写入Response.Redirect(URL)跳转到第二个页面中;
(3)在第二个页面中如果想要接受从第一个页面中传递过来的参数时要用Request.QueryString[“name”]或是
Request.QueryString[Index](注:在这中括号里面可以直接加上参数的名字或是索引)
-----说了这么多下面来看一个例子吧------------
3.实例:
(1)首先在第一个页面的中写入以下的代码:
protected void Button1_Click(object sender, EventArgs e)
{
string user = TextBox1.Text;//接受页面中第一个文本框中传进来的文本 在此是用作用户名
string pwd = TextBox2.Text;//接受页面中第二个文本框中传进来的文本,在些是用作密码
string url="Test.aspx?uid=" + user + "&" + "password=" + pwd;//构造带有参数以及值的参数;
Response.Redirect(url);
}
(2)然后再从第二个页面中写入以下代码:
在页面加载的时候写入以下代码,当页面在加载时,把从页面一传进来的值分别放在第二个页面的两个文本框中
protected void Page_Load(object sender, EventArgs e)
{
TextBox3.Text = Request.QueryString["uid"];
TextBox2.Text = Request.QueryString["password"];
}
此时就完成了值的传递。在第二个页面中就可以看到从页面一传进来的值了。
4.可能会现的一些小问题:
如果在执行Request.QueryString[]这个函数里传的递的值为汉字的话,可能会出现不完整性或是错误性。修改的方法:
1.找到项目中web.connfing这一个配置文件,将其中第一行<?xml version="1.0" encoding="utf-8" ?>
改为<?xml version="1.0" encoding="GB2312" ?> 将其后面的utf-8的编码改为GB2312.改为国标的。就OK了。
第二种修改方法:
方法二:使用Server.UrlEncode和Server.UrlDecode对汉字或者特殊字符进行编码和解码。