asp.net项目页面间传值的几种方式(部分转载)
来源:互联网 发布:hadoop2.6源码阅读 编辑:程序博客网 时间:2024/06/05 02:20
由于本人正在做ASP.net的web端开发,涉及到很多页面间传值,于是在此做一下整理方便以后进行查阅。
这里都是介绍在一个页面进行赋值,传递到另外一个页面中:赋值页面:Manage.aspx 传递页面:Detail.aspx。
1.使用QueryString方法
Manage.aspx.cs代码:
Response.Redirect("Detail.aspx?loId=" + ViewState["ID"].ToString() + "&Id=" + this.lblId.Text);
Detail.aspx.cs代码: protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RightCheck("32"); //权限检测
string temp_Id = Request.QueryString["Id"];/
this.lblId.Text = Request.QueryString["loId"];
if (!string.IsNullOrEmpty(temp_Id))
{
if (int.TryParse(temp_Id, out hoId))
//尝试转换为int型,如果字符串为空,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常;如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;
{
ViewState["ID"] = temp_hoId; //传递地址参数
}
else
{
Response.Redirect("Manage.aspx");//跳转到管理页面
return;
}
…………
}
}
}
2.Session传值方法
引用百度百科对Session作出的在Web端的解释:Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就是用户浏览这个网站所花费的时间。
Session["password"] = this.psd.Text.Trim();
Response.Redirect("Detail.aspx");
Application["currentuser"] = this.cu.Text.Trim();
Application["psd"] = this.psd.Text.Trim();
Application.UnLock();
Server.Transfer("ObtainValue.aspx");
Application.Lock();
this.cu.Text = Application["currentuser"].ToString();
this.psd.Text = Application["psd"].ToString();
Application.UnLock();
解析:Application.Lock和Application.UnLock一般配对出现,用于锁住Lock与UnLock之间的所有代码(注意不光锁住对于Application的赋值)。Lock(obj) 于用锁住obj对象,obj对象必须是全局对象(如:Application)。网站内任何一个网页执行Application.Lock的时候,整站中所有关于Application的操作都会被锁定延时执行。(包括:Application赋值和Application读取);而Lock(obj)则不会影响其他没有写Lock(obj)的页面。Application.Lock/UnLock比较安全,因为它是全局锁定所有的Application的,而Lock(obj)则更灵活,因为另一页面中如果没有写Lock(obj)则可以修改其他页面Lock住的内容。
Manage.aspx.cs代码:
HttpCookie cookieName = new HttpCookie("currentuser");
cookieName.Value = this.currentuser.Text.Trim();
Response.AppendCookie(cookieName);
HttpCookie cookiePwd = new HttpCookie("pwd", this.psd.Text.Trim());
Response.AppendCookie(cookiePwd);
Server.Transfer("Detail.aspx");
Detail.aspx.cs代码:
this.currentuser.Text = Request.Cookies["currentuser"].Value.ToString();
this.psd.Text = Request.Cookies["psd"].Value.ToString();
解析:与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。
5、使用Server.Transfer方法:
Manage.aspx.cs代码:
public string currentuser
{
get { return this.currentuser.Text.Trim(); }
}
public string psd
{
get { return this.psd.Text.Trim(); }
}
protected void btnTransferValue_Click(object sender, EventArgs e)
{
Server.Transfer("Detail.aspx");
}
Detail.aspx.cs代码:
private void TransferValue()
{
Manage manage;
manage = (Manage)Context.Handler;
this.currentuser.Text = manage.currentuser;
this.psd.Text = manage.psd;
}
附:cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中。
- asp.net项目页面间传值的几种方式(部分转载)
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式收藏
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- asp.net中页面间传值的几种方式。
- asp.net 页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式 分类
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- ASP.NET页面间传值的几种方式
- spring-3.2.4.RELEASE整合quartz-2.2.2
- STL中vector iterators imcompatible报错
- SpringMVC深度探险 —— SpringMVC核心配置文件详解
- treap
- 3D Touch详解
- asp.net项目页面间传值的几种方式(部分转载)
- UVa 1433 - Aerodynamics
- 字符编码简介
- 单件模式(heade first设计模式读书笔记)
- Objc 精选 - 3D Touch 之 Peek & Pop 操作
- 编译C51项目的bat脚本
- kettle设计工具spoon安装问题及解决(Win环境)
- 29.iPhone距离传感器的简单使用
- 用TextView动态显示文件内容