ASP.NET跨页面传值的技巧

来源:互联网 发布:小米三可以用4g网络吗 编辑:程序博客网 时间:2024/05/21 10:01

 

2009-07-24 14:36 被偷De贼 博客园 我要评论(1) 字号:T |关于页面传值的方法,引发了很多讨论。本文总结了asp.net跨页面传值的技巧。

AD:


    ASP.NET跨页面传值:使用QueryString变量

    QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:

    a.aspx的C#代码

    1. private void Button1_Click(object sender, System.EventArgs e)
    2. {
    3. string s_url;
    4. s_url = "b.aspx?name=" + Label1.Text;
    5. Response.Redirect(s_url);
    6. }

    b.aspx中C#代码

    1. private void Page_Load(object sender, EventArgs e)
    2. {
    3. Label2.Text = Request.QueryString["name"];
    4. }

    ASP.NET跨页面传值:使用Application 对象变量

    Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。

    a.aspx的C#代码

    1. private void Button1_Click(object sender, System.EventArgs e)
    2. {
    3. Application["name"] = Label1.Text;
    4. Server.Transfer("b.aspx");
    5. }

    b.aspx中C#代码

    1. private void Page_Load(object sender, EventArgs e)
    2. {
    3. string name;
    4. Application.Lock();
    5. name = Application["name"].ToString();
    6. Application.UnLock();
    7. }

    ASP.NET跨页面传值:使用Session变量

    想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。

    a.aspx的C#代码

    1. private void Button1_Click(object sender, System.EventArgs e)
    2. {
    3. Session["name"] = Label.Text;
    4. }

    b.aspx中C#代码

    1. private void Page_Load(object sender, EventArgs e)
    2. {
    3. string name;
    4. name = Session["name"].ToString();
    5. }

    ASP.NET跨页面传值:使用Cookie对象变量

    这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合asp.net内置对象Request来使用。

    a.aspx的C#代码

    1. private void Button1_Click(object sender, System.EventArgs e)
    2. {
    3. HttpCookie cookie_name = new HttpCookie("name");
    4. cookie_name.Value = Label1.Text;
    5. Reponse.AppendCookie(cookie_name);
    6. Server.Transfer("b.aspx");
    7. }

    b.aspx中C#代码

    1. private void Page_Load(object sender, EventArgs e)
    2. {
    3. string name;
    4. name = Request.Cookie["name"].Value.ToString();
    5. }

    ASP.NET跨页面传值:使用Server.Transfer方法

    这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。

    a.aspx的C#代码

    1. public string Name
    2. {
    3. get{ return Label1.Text;}
    4. }
    5. private void Button1_Click(object sender, System.EventArgs e)
    6. {
    7. Server.Transfer("b.aspx");
    8. }

    b.aspx中C#代码

    1. private void Page_Load(object sender, EventArgs e)
    2. {
    3. a newWeb; //实例a窗体
    4. newWeb = (source)Context.Handler;
    5. string name;
    6. name = newWeb.Name;
    7. }

    以上就是本人在实践过程中总结的asp.net跨页面传值的技巧。

    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机销号支付宝怎么办 黑狗狗毛发红怎么办 裤子洗掉色了怎么办 没买快递收到怎么办 淘宝介入卖家不举证怎么办 买家拒收快递货怎么办 买家到付拒收怎么办 买家发顺丰到付又拒收怎么办 到付快递骗局怎么办 一年级学生上课走神怎么办 网购出现质量问题怎么办 小米分期没额度怎么办 小米预约错了怎么办 小米商城缺货要怎么办 LG显示器不满屏怎么办 网页页面放大了怎么办 JSP样式失效了怎么办? 客户故意不结账怎么办 面对刁难的顾客怎么办 万家乐燃气灶具不好打火怎么办 垃圾处理器堵了怎么办 银赫入伍金俊秀怎么办 孕妇被蜈蚣咬了怎么办 苹果id密码忘了怎么办 苹果6触屏失灵怎么办 阴道里长尖锐疣怎么办 毛笔笔尖泡弯了怎么办 长智齿了很疼怎么办 买彩票中大奖了怎么办 被小蜈蚣咬了怎么办 微信被盗刷钱了怎么办 眼结膜下出血该怎么办 金珠娜没有你该怎么办 晕血的人来月经怎么办 真丝衣服洗花了怎么办 窦性心动过缓怎么办 苹果id账号忘了怎么办 驾照换证过期了怎么办 充电宝灯一直亮怎么办 淘宝充值未到账怎么办 中银购物商城卡怎么办