页面之间对象传递的方法有哪几种?
1个回答
推荐于2018-10-08 · 知道合伙人数码行家
关注
展开全部
1.QuerySting在页面间传递值
这种方法的写法:在要传递值的页面,Response.Redirect(url),值包含在在url中。接收值得页面,Request.QueryString["变量名"]。
这是使用起来很简单的一种方式,但是它不是很安全,因为值会在浏览器里的地址栏里显示。并且它也不能传递对象,对长度也有限制,如果要传递的值很多,且对安全要求也高的话,这种方式就不适合了。
2.Session变量
我们通常在一个页面中,将值放到session变量中,在另外几个页面使用它。Session变量存储过多的数据会消耗比较多的服务器资源,在使用时应该慎重。通常将登陆的用户名和密码防到session中,其他页面根据判断session中用户名和密码是否有值来判断用户是否登录。
写法:存入到session变量,Session["name"]=“要放入的值”;读取session中的值,变量名=Session["name"].ToString();
3.Cookie对象变量
Cookie对象变量和session一样,他们不同的是,session是存在服务器端,而cookie是存放在客户端的。
写法:将值存入到cookie中
HttpCookie userName=new HttpCookie("name");
userName.Value = "值";
Response.AppendCookie(userName);
读取cookie中的值
变量名 = Request.Cookies["userName"].Value.ToString();
4.使用Application 对象变量
Application对象的作用范围是整个全局,他对所有用户都有效,session和cookie是对一个用户而言,所以我们可以用它统计登陆该网站的人数。Application变量不会自己消亡,会始终占据内存,创建过多的变量会降低响应速度,只有在服务被中止、Global.asa被改变或者该Application被卸载下才会被终止。
写法:将值存入到application中, Application["name"] = "值";
读取值,变量名= Application["name"].ToString();
上面是我常用到的几种方式,当然还有其他方式。还有利用某些控件的PostBackUrl属性,使用Server.Transfer,使用@PreviousPageType指令,这些暂时没用过,在以后会试着用,用的多了就会有对比,就能知道在什么场合更适合哪种方式。
这种方法的写法:在要传递值的页面,Response.Redirect(url),值包含在在url中。接收值得页面,Request.QueryString["变量名"]。
这是使用起来很简单的一种方式,但是它不是很安全,因为值会在浏览器里的地址栏里显示。并且它也不能传递对象,对长度也有限制,如果要传递的值很多,且对安全要求也高的话,这种方式就不适合了。
2.Session变量
我们通常在一个页面中,将值放到session变量中,在另外几个页面使用它。Session变量存储过多的数据会消耗比较多的服务器资源,在使用时应该慎重。通常将登陆的用户名和密码防到session中,其他页面根据判断session中用户名和密码是否有值来判断用户是否登录。
写法:存入到session变量,Session["name"]=“要放入的值”;读取session中的值,变量名=Session["name"].ToString();
3.Cookie对象变量
Cookie对象变量和session一样,他们不同的是,session是存在服务器端,而cookie是存放在客户端的。
写法:将值存入到cookie中
HttpCookie userName=new HttpCookie("name");
userName.Value = "值";
Response.AppendCookie(userName);
读取cookie中的值
变量名 = Request.Cookies["userName"].Value.ToString();
4.使用Application 对象变量
Application对象的作用范围是整个全局,他对所有用户都有效,session和cookie是对一个用户而言,所以我们可以用它统计登陆该网站的人数。Application变量不会自己消亡,会始终占据内存,创建过多的变量会降低响应速度,只有在服务被中止、Global.asa被改变或者该Application被卸载下才会被终止。
写法:将值存入到application中, Application["name"] = "值";
读取值,变量名= Application["name"].ToString();
上面是我常用到的几种方式,当然还有其他方式。还有利用某些控件的PostBackUrl属性,使用Server.Transfer,使用@PreviousPageType指令,这些暂时没用过,在以后会试着用,用的多了就会有对比,就能知道在什么场合更适合哪种方式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询