参考地址: http://blog.csdn.net/zzzzzzzert/article/details/8486143

protected void Button1_Click(object sender, EventArgs e)  
            { 
                //使用querystring传值 
                //Response.Redirect("b.aspx?username=" + TextBox1.Text.Trim() + "&&pwd=" + TextBox2.Text.Trim()); 
     
                //使用Session传值 
                //Session["username"] = TextBox1.Text.Trim(); 
                //Session["pwd"] = TextBox2.Text.Trim(); 
                //Response.Redirect("b.aspx"); 
     
                //使用Application传值 
                //Application["username"] = TextBox1.Text.Trim(); 
                //Application["pwd"] = TextBox2.Text.Trim(); 
                //Response.Redirect("b.aspx"); 
     
                //使用Cookie传值 
                //HttpCookie hc = new HttpCookie("username",TextBox1.Text.Trim()); 
                //HttpCookie hc2 = new HttpCookie("pwd",TextBox2.Text.Trim()); 
                //Response.AppendCookie(hc);//将创建的Cookie添加到内部Cookie集合中 
                //Response.AppendCookie(hc2); 
                //Server.Transfer("b.aspx"); //Cookie需要使用Server.Transfer跳转 
     
                //使用Server.Transfer传值 
                //Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的。 
                //Server.Transfer("b.aspx"); 
     }  
            //使用Server.Transfer传值 
            //public string GetUserName 
            //{ 
            //    get { return TextBox1.Text.Trim(); } 
            //} 
            //public string GetPwd 
            //{ 
            //    get { return TextBox2.Text.Trim(); } 
            //}

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

下面是一个例子:a.aspx的C#代码
[csharp] view plaincopy

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

b.aspx中C#代码
[csharp] view plaincopy

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

2. 使用Session变量

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

a.aspx的C#代码
[csharp] view plaincopy

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

b.aspx中C#代码
[csharp] view plaincopy

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

3. 使用Cookie对象变量

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

a.aspx的C#代码
[csharp] view plaincopy

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

b.aspx中C#代码
[csharp] view plaincopy

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

4. 使用Application 对象变量

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

a.aspx的C#代码
[csharp] view plaincopy

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

b.aspx中C#代码
[csharp] view plaincopy

private void Page_Load(object sender, EventArgs e)  
    {  
    string name;  
    Application.Lock();  
    name = Application["name"].ToString();  
    Application.UnLock();  
    }

5. 使用Server.Transfer方法

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

a.aspx的C#代码
[csharp] view plaincopy

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

b.aspx中C#代码
[csharp] view plaincopy

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

asp.net 页面跳转传值的几种方式的更多相关文章

  1. ASP.NET页面之间传递值的几种方式(转载)

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  2. ASP中页面之间传递值的几种方式

    ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryS ...

  3. js页面跳转常用的几种方式(转)

    js页面跳转常用的几种方式 转载  2010-11-25   作者:    我要评论 js实现页面跳转的几种方式,需要的朋友可以参考下. 第一种: 复制代码代码如下: <script langu ...

  4. jQuery Mobile页面跳转切换的几种方式

    jQuery Mobile在移动开发中越来越受到欢迎. 而他的各个版本号也在持续不断的更新中.相同的我也非常喜欢它,它加快了我们开发HTML5的速度. 同一时候又具备jQuery一样的操作方法. 学起 ...

  5. PHP页面跳转传值的三种常见方式

    一. POST传值 post传值是用于html的<form>表单跳转的方法,很方便使用.例如: ? 1 2 3 4 5 6 7  <html>  <form action ...

  6. Spring MVC中页面向后台传值的几种方式

    在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:   @Controller:         在类上注解,则此类将编程一个控制器,在项目启动 Spring 将自动扫描此类,并进行对 ...

  7. ASP.NET 页面之间传递值的几种方式

    1.使用QueryString,  如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer4.Applicatio ...

  8. ASP.NET页面之间传递值的几种方式

    目录 QueryString Session Cookie Application 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中. ...

  9. [转]ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

随机推荐

  1. MyCat:在.NET Core中使用MyCat

    http://www.cnblogs.com/yuangang/p/5830716.html

  2. Azure billing 分析(2)

    美国中南部的2008R2的A1的VM放了一天,CPU时间涨了13个小时,有点小贵,真的没有操作啊... 提示早上7到9点有一个小高峰. 看来平时没什么访问量时,还是改成A0能省点钱.因为第一天是用A0 ...

  3. maven增加Spring

    对于javax.annotation,spring某些注解要用的,比如:@Resource.   使用Maven管理基本的Spring依赖关系 Spring被设计为可高度模块化的 —— 使用Sprin ...

  4. IOS推荐学习网站

    1> 个人博客:技术大牛 唐巧:http://blog.devtang.com/blog/archives/ 王巍:http://www.onevcat.com 破船之家:http://beyo ...

  5. CPU informition

    tar jxvf util-linux-ng-2.18.bz2cd util-linux-ng-2.18/./configure --enable-arch --enable-partx --enab ...

  6. jsp eclipse 创建jsp项目

    选择File菜单 File->new->Other... 选择Dynamic Web Project项目->Next 写入项目->Finish 在WebContent鼠标右键- ...

  7. 多边形和圆的相交面积(模板)hdu2892、hdu4404

    area Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. ant的那些闹挺事

    今日发现了一个问题,用ant+hudson去运行脚本代码时,突然ant报错: 即使我在ant的build文件中指定了basedir=“C:/Users/145064/.hudson/jobs/haix ...

  9. oracle 分区表的维护

    1:添加分区: ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD')); SAL ...

  10. 夺命雷公狗---DEDECMS----25dedecms导航条首页的跳转

    我们的导航条首页一直没写跳转,现在我们看看dede自带模版的首页是怎么写的: 他也是封装了一个{dede:global.cfg_cmsurl/}/内置标签来实现的,那么我们来改下我们的head.htm ...