参考地址: 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. tableview在第一次显示时会自动relodata

    tableview在第一次显示时会自动加载数据

  2. Leetcode: Convert a Number to Hexadecimal

    Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two's compl ...

  3. Leetcode: Kth Smallest Element in a Sorted Matrix

    Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...

  4. 【Origin】 偶题 之 抒意

    作词抒胸臆, 辞赋九万里: 从南盖到北, 句句表挚期. -作于二零一五年七月十五日

  5. 关闭VS实时调试器

    到注册表删除以下2个项目就可以了 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger HK ...

  6. 省市区三级联动(二)JS部分简单版

    通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...

  7. 使用 nano 的时候提示找不到 libncursesw.so.5 这个共享库

    由于拿nano来练习pacman这个包管理系统,也就是卸了装,装了卸.但是后来当我想用 nano 编辑文件的时候,系统提示标题上说的这错误. 不知道做了什么,难道是误删了什么东西...后来几番搜索,用 ...

  8. small details

    1.操作数据时,一般能入库就入库,或者用xml文件,用文件操作比较复杂

  9. location.reload

    location.reload()-----重新加载缓存页面 location.reload(true)------重新加载服务器页面

  10. MKCOL not allowed

    通过TortoiseSvn操作GitHub的时候出现下图提示: 原因:尝试在根目录创建新的文件夹(文件),貌似是不被允许的行为 解决:只能在trunk 或者 branches下再新建文件夹(文件)