在上一篇文章当中,介绍了使用带参数的URL实现页面间传值的方式,但使用URL进行页面间传值,所传值的页面数量受限,一般情况只能实现两个页面间传值,如果想在多个页面间传值的话,带参数的URL有些力不从心了,而Session变量可以实现多个页面间传值,为我们提供了很多方面,下面将进行详细的介绍。
ASP.NET中使用Session变量在多个页面间传值的步骤:
(1)在源页面中定义Session变量,将需要传递的值放入Session变量中,定义Session变量很简单,语法格式如下:
Session["变量名称"] = 要传递的值;
(2)在目标网页中获取所传递的值,语法格式如下:
要接收值的变量或控件 = Session["变量名称"];
下面使用一个例子来说明具体使用方法:
在源页面中定义Session变量,可以在相应的事件处理程序中,或在信息处理完后,需要在多个页面共享信息的页面中保存值时,都可以使用Session变量,这里假设将TextBox中的值传递到其它页面中:
源页面代码(这里假定为按钮的Click事件,SecondPage.aspx为目标网页):
private void Button1_Click (object sender, System.EventArgs e)
{
Session["userName"] = TextBox1.Text.Trim( ) ; //获取用户名
Session["userAge"] = TextBox2.Text.Trim( ); //获取用户年龄
Server.Transfer("SecondPage.aspx"); //使用Server.Transfer方法跳转到目标页
}
在目标页面中可以获取Session变量中保存的值:
private void Page_Load(object sender, System.EventArgs e)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
}
上面的例子使用Server.Transfer跳转到目标页,并在目标页中获取值,实际上只要保存到了Session中,可以在多个页面中读取Session中的值,如在登录处理程序中,当用户登录成功后,可以使用Session变量保存用户登录的用户名和其它相关信息,而在其它需要登录后才能操作的页面中可以先判断一下Session变量对应的值是否为null,如果为null则用户未登录,就可以将页面跳转到登录页面,否则,可以认为用户已经登录并保存了Session,用户就可以进行该页面中的其它操作。
滥用Session变量,会消耗较多的服务器资源,因此如果不是在多个页面中共享值的话,最好不使用Session变量。同时,Session变量有自己的生存期,如果用户未进行任何操作的话,网页保存的Session变量在生存期结束时,将自动失效。
新闻热点
疑难解答
图片精选