当前位置:K88软件开发文章中心编程语言.NET.NET02 → 文章内容

ASP.NET中使用Session变量实现多页面传值

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 0:48:49

:2012-09-08 13:37:29

上一篇文章当中,介绍了使用带参数的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变量在生存期结束时,将自动失效。


ASP.NET中使用Session变量实现多页面传值