• asp.net 页面跳转传值的几种方式


       参考地址: 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;  
        }  


     

  • 相关阅读:
    各种排序算法java实现,好文,做个备份
    一个SQL语句
    StrutsLayout tag library 1.1发布
    “单击将本站加入收藏夹”的代码
    IE无法上网连接的解决办法
    字符问题!
    Time Tracker Starter Kit 简介
    谈恋爱是百年好合的事
    一个sql语句
    ASP.NET 中的自定义脚本回调
  • 原文地址:https://www.cnblogs.com/hutie1980/p/4664691.html
Copyright © 2020-2023  润新知