ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Asp.Net页面传值的方法

Asp.Net页面传值的方法

原创 Linux操作系统 作者:CodeAgriculture 时间:2013-03-29 14:32:28 0 删除 编辑
一、Resonse.Redirect():          
            //Method1 Response.Redirect
            string name = this.lb_Name.Text;
            Response.Redirect("TargetPage.aspx?name=" + name);//優點傳值簡單;缺點:安全性低、不能傳遞數組和對象

二、Session
            /*Method2 Session
             * 优点:使用简单,不仅能传递简单数据类型,还能传递对象。2.数据量大小是不限制的。
             * 缺点:1.在Session变量存储大量的数据会消耗较多的服务器资源。2.容易丢失。
             * 销毁的方法是:清除一个:Session.Remove("session名");清除所有:Session.Clear();
             * 注意區別Application和Session:前者所有的用户共用的全局变量,后者是各个用户独有的全局变量。
             * */
            Session["Name"] = name;
            //Response.Redirect("TargetPage.aspx");

三、Application
            /*Method3 Application
             * 优点:使用简单,消耗较少的服务器资源。2.不仅能传递简单数据,还能传递对象。3.数据量大小是不限制的。
             * 缺点:1.作为全局变量容易被误操作。所以单个用户使用的变量一般不能用application。
             *
             * 注意:常用lock和unlock方法用来锁定和解锁,为了防止并发修改。
             *
             * */
            Application["Name"] = this.Label1.Text;
           
方法四 Cookie:
            /*Method 4 Cookies
             *
             * */
            HttpCookie hc = new HttpCookie("Name", this.Label10.Text);
            Response.Cookies.Add(hc);
            //Response.Redirect("TargetPage.aspx");

方法五:Server.Transfer
            /*Method 5 Server.Transfer();
             *优点:1.直接在服务器端重定向,使用简单方便,减少了客户端对服务器端提出请求。2.可以传递各种数据类型的值和控件的值。
             *缺点: 1.客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意想不到的问题。比如如果源页面和目的页面不在同一个虚拟目录或其子目录下,那么使用相对路径的图片、超链接都会导致错误的指向。
            
             * 比较Server.Transfer和Response.Redirect的区别。
            (1)Server.Transfer在服务器端完成,所以客户端浏览器中的URL地址是不会改变的;Response.Redirect是客户端完成,向服务器端提出新的页面处理请求,所以客户端浏览器中的URL地址是会改变的。
            (2)Server.Transfer在服务器端完成,不需要客户端提出请求,减少了客户端对服务器端提出请求。
            (3)Server.Transfer只能够转跳到本地虚拟目录指定的页面,也就是工程项目中的页面,而Response.Redirect则十分灵活,可以跳转到任何URL地址。
            (4)Server.Transfer可以将前一个页面的各种类型的值传到新的页面;Response.Redirect则只能借助URL中带参数或是结合上面四种办法把各种类型的值传到新的页面。
             * * */
            Server.Transfer("TargetPage.aspx",false);

            //Server.Transfer 传值
           public string Lb_Name
           {
              get { return this.lb_Name.Text; }
          }
使用Server.Transfer时在页面定义一个属性,在目标页面使用Context.Handler获取传递页面对象eg:
SourcePage sp = (SourcePage)Context.Handler;//可以获取SourcePage页面的所有对象
 this.TextBox4.Text = sp.Lb_Name;

目标页接收传递过来的值:
            string name = Request.QueryString["Name"];
             this.tb_value.Text = name;

            this.TextBox1.Text = Session["Name"].ToString();

            Application.Lock();
            this.TextBox2.Text = Application["Name"].ToString();
            Application.UnLock();

            this.TextBox3.Text = Request.Cookies["Name"].Value.ToString();

            SourcePage sp = (SourcePage)Context.Handler;//可以获取SourcePage页面的所有对象(
SourcePage 为跳转之前的页面)
            this.TextBox4.Text = sp.Lb_Name;

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28699126/viewspace-757400/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-03-07

  • 博文量
    54
  • 访问量
    435952