ASP.NET的多种传值方式

ASP.NET的多种传值方式

一、Cookie传值
1、优点:使用简单,可以保持用户状态;
2、缺点:安全性不高;
使用方法:
(1)在源页面的代码中创建需要传递的名称和值构造Cookie对象:

               HttpCookie cookid = new HttpCookie("test");
               cookid.Value = txtName.Text; //txtName为控件ID
               Response.Cookies.Add(cookid);

(2)目的页面接收值:

lblUserName .Text=Request.Cookies["test"].Value.ToString();     //lblUserName 为控件ID

还有一种较为简便的cookid传值方式:
(1)在源页面创建传递名称和值构造Cookid对象:

Response.Cookies["UserName1"].Value = txtName.Text; //txtName为控件ID,UserName1为创建的传递名称

(2)目的页面接收值:

lblUserName.Text =Request.Cookies["UserName1"].Value; //lblUserName 为控件ID

二、QueryString传值
1、优点:使用简单,可以传递安全性要求不高的数字或文本值;
2、缺点:缺少安全性,不能传递对象;
使用方法:
(1)源页面的代码中用需要传递的名称和值构造URL地址;

private void Button1_Click(object sender, System.EventArgs e) 
{ 
  string s_url; 
  s_url = "b.aspx?name=" + Label1.Text; //Label1为控件ID
  Response.Redirect(s_url); 
}

(2)目的页面的代码中使用Request.QueryString[“name”];取出URL地址中传递的值;

lblUserName.Text = Request.QueryString["name"].ToString(); //lblUserName为控件ID

三、Session传值
1、优点:用法简单,不仅能传递简单数据类型,还能传递对象;
2、缺点:数据容易丢失,消耗服务器资源;
使用方法:
(1)在源页面的代码中创建需要传递的名称和值构造Session变量;

Session["UserName"] = txtName.Text; //txtName为控件ID

(2)在目的页面代码中使用Session变量取出索要传递的值;

lblName.Text = Session["UserName"].ToString(); //lblUserName 为控件ID

四、在三层架构中使用Model层进行传值
1、优点:能存储复杂数据,使传递值更为简单;
2、缺点:传递过程较为复杂;
使用方法:
(1)在源页面代码中创建需要传递的名称和值构造变量;

 tblUser.UserName = txtName.Text;
 tblUser.UserPwd = txtPwd.Text;

(2)在Model层中创建类,用于储存所需要的值;

public static    class tblUser
    {
     public static string UserName;
     public static string UserPwd;
    }

(3)在目的页面获取值时,可直接调用Model所创建的类;

string sqlcomm = string.Format("update  tblUser set User_password='{0}' where  User_name='{1}'",newPwdDAl,tblUser.UserName);

注意:在传值过程中需要引入Model层;
五、Application传值
1、优点:使用简单,可以传递数据与对象;
2、缺点:Application是作为全局变量进行传值,所以容易被误操作;
使用方法:
(1)在源页面的代码中创建需要传递的名称和值构造Application变量;

Application["name"] = Label1.Text; //Label1为控件ID

(2)在目的页面的代码使用Application变量取出传递的值;

string name; 
  Application.Lock(); 
  name = Application["name"].ToString(); 
  Application.UnLock(); 

六、Server.Transfer传值
1、优点:直接在服务器端重定向,使用简单方便;
2、缺点:可能出现指向性Bug问题,导致网站的图片等出错;
使用方法:
(1)在源页面的代码中,使用Server.Transfer跳转到目的页面传递页面数据;

public string Name 
{ 
  get{ return Label1.Text;} 
} 
private void Button1_Click(object sender, System.EventArgs e) 
{ 
  Server.Transfer("WebForm1.aspx"); 
}

(2)在目的页面中,使用Context.Handler来接收数据;然后用formerPage的属性和方法来获取前一个页面的值;

private void Page_Load(object sender, EventArgs e) 
{ 
   WebForm newWeb;  //实例化WebForm窗体 
  newWeb = (source)Context.Handler; 
  string name; 
  name = newWeb.Name; 
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值