| [C#]asp.net如何在不同的页面之间传递信息
					当前位置:点晴教程→知识管理交流
					
					→『 技术文档交流 』
					
				 
 Cookies       QueryString         Application        Session 1、利用cookies保持客户端信息   .NET System Web 控件名称以下三个类,可以使用它们来处理客户端的Cookies   1、HttpCookie:提供一个建立和操作独立HTTPcookies的安全类型的方式   2、HttpResponse:Cookies属性允许客户端cookies被操作   3、HttpRequest:Cookies属性允许访问客户端操作的cookies   HttpResponse和HttpRequest对象的Cookies属性将返回一个HttpCookieCollection对象,它可以将单独的cookies添加到集合(collection)中,以及从集合(collection)获得一个单独cookies。   HttpCookie类针对于客户存储而建立的单独的cookies。一旦HttpCookie对象被建立,可以将其添加到HttpResponse对象的Cookies属性中。同样的,可以通过HttpResponse对象访问现有的cookies。HttpCookies类的共有属性如下:     1)Domain:获得或设置与cookie有关的域名,可用于限制特定区域的cookie访问     2)Expires:获得或设置cookie的终止日期和时间,可以将其设置为一个过去的日期以自动禁止或者删除cookie     3)Names:获得或设置cookie的名称     4)Path:获得或设置cookie的虚拟路径。这一属性允许限制cookie的范围,也就是说,访问cookie只能限制于一个特定的文件夹或路径。          设置这一属性限制为只能访问特定路径和该路径下的所有文件     5)Secure:发信号以表示是否使用SecureSocketsLayer(SSL)来发送cookie值     6)Value:获得或设置一个单独的cookie值     7)Values:返回包含在cookie中的key/value的一个集合   每一个Cookie都是从Cookies中获得的,就是说Cookie是通过索引器的方式获得的。   利用Response、Request对象读写,语法如下:     //保存信息到Cookie中     Response.Cookies["Cookie的名字"].value=变量的值;     //读取Cookie     Object 变量名=Request.Cookies["Cookie的名字"].value;   Cookie属于HttpCookie,所以它的语法也可以写成如下形式:     //键值对的方式保存信息     HttpCookie  hCookie = new  HttpCookie("Cookie的名字",值);     //保存Cookie到Cookies中     Response.Cookies.Add(hCookie); 	例: 	//保存信息到Cookie中 	protected void btnWrite_Click(object sender, EventArgs e) 	{ 		Response.Cookies["firstcookie"].Value = textbox1.Text.Trim(); 		Response.Cookies["secondcookie"].Value = textbox2.Text.Trim(); 		//Response.Cookies["firstcookie"].Expires = DateTime.Now.AddDays(1); 		// Response.Cookies["secondcookie"].Value = DateTime.Now.ToString(); 	} 	//获取Cookie中的信息 	protected void btnRead_Click(object sender, EventArgs e) 	{ 		textbox1.Text= Request.Cookies["firstcookie"].Value; 		textbox2.Text = Request.Cookies["secondcookie"].Value; 	} 2、QueryString   当使用表单的get方式提交数据时,表单中的数据被保存在Request对象的Querystring集合中。除了读取表单对象传递的参数外,Querystring集合还可以通过读取HTTP查询字符串中的参数值来传递参数。使用Querystring集合来传递数据的语法格式为:   Request.Querystring(变量名)[(索引值)|.变量的个数] 	其中各个参数的含义如下:   1)变量名为在HTTP查询字符串中指定要检索的变量名称   2)索引值用于检索多个变量值中的某一个   3)HTTP查询字符串中的变量值由问号(?)后面的值指定 	用QueryString在页面间传递值得具体过程有以下三步:   (1)在源页面的代码中用需要传递的名称和值构造URL地址   (2)在源页面的代码中用Request.Redirect(URL);重定向到上面的URL地址中   (3)在目的页面的代码中用Request.QueryString["name"];取出URL地址中传递的值 	例: 	protected void btnSendMessage_Click(object sender, EventArgs e) 	{ 		//第一步 		string urlAddress; 		urlAddress = "ReadCookie.aspx?name1=" + 		textbox1.Text.ToString() + "&" + 		"name2=" + textbox2.Text.ToString() + "&" + 		"name3=" + textbox3.Text.ToString(); 		//第二步 		Response.Redirect(urlAddress); 	} 	protected void btnRead_Click(object sender, EventArgs e) 	{ 		//第三步 		textbox1.Text = Request.QueryString["name1"]; 		textbox2.Text = Request.QueryString["name2"]; 		textbox3.Text = Request.QueryString["name3"]; 	} 	使用QueryString在页面间传递值的优缺点:   优点:     使用简单,对于安全性要求不高时传递数字或文本值非常有效   缺点:     1)缺乏安全性,是因为它的值暴露在浏览器的URL地址中     2)不能传递对象 3、Application   Application变量在整个应用程序生命周期中都是有效的,类似于使用全局变量,所以可以在不同页面中对它进行存取。它和Session变量的区别在于,前者是所有的用户公用的全局变量,后者是各个用户独有的全局变量。   Application变量的使用方法如下:   1)在源页面的代码中创建需要传递的名称和值构造Application变量,如:     Application["Name"]="Value(Or Object)";   2)在目的页面的代码使用Application变量取出传递的值,如:     Result=Application["Name"]; 	例: 		protected void btnSendMessage_Click(object sender, EventArgs e) 		{ 		Application["name1"] = textbox1.Text; 		Application["name2"] = textbox2.Text; 		Application["name3"] = textbox3.Text; 		Response.Redirect("ReadCookie.aspx"); 		} 		protected void btnRead_Click(object sender, EventArgs e) 		{ 		textbox1.Text = Application["name1"].ToString(); 		textbox2.Text = Application["name2"].ToString(); 		textbox3.Text = Application["name3"].ToString(); 		} 	使用Application进行页面传值的优缺点:   优点:     (1)使用简单,消耗较少的服务器资源     (2)不仅能传递简单的数据类型,还能传递对象     (3)数据量大小是不受限制的   缺点:     (1)作为全局变量容易被误操作 4、Session   Session变量和Application变量非常类似,它们的区别在Application变量中提到了。它的使用方法如下:、   1)在源页面的代码中创建需要传递的名称和值构造Session变量,如:     Session["name"]="Value(Or Object)";   2)在目的页面的代码中使用Session变量取出传递的值,如:     Result=Session["name"]; 	使用Session进行页面传值的优缺点:   优点:     (1)使用简单,不仅能传递简单的数据类型,还能传递对象     (2)数据量大小是不受限制的   缺点:     (1)在Session变量存储大量的数据会消耗较多的服务器资源 该文章在 2021/3/3 17:34:48 编辑过 | 关键字查询 相关文章 正在查询... |