`

ASP.NET中页面间传值方法总结

 
阅读更多

在ASP.NET网络编程中经常需要处理上一个页面向下一个页面传递数量不等的各种数据。下面利用Microsoft Visual Studio  2008  C#介绍六种页面传值方式。1、通过用QueryString来传送相应的值;2、通过session变量来传送相应的值;3、通过Server.Transfer方法来实现;4、是利用Cookie传送页面间相应的值;5、 PostBackUrl()方法;6、利用类来传递页面的值。


一、使用Querystring

QueryString是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象类型的值。如果你想传递一个安全性不太重要或者是一个简单的数值时,用此方法最好不过了。下面的实例演示完成传值工作。

1、创建一个Web页面,命名为Default1.aspx

2、在新建的Default1中放置一个Button1,在放置两个TextBox1,TextBox2

3、Button按钮创建click事件代码如下:
protected void Button1_Click(object sender, EventArgs e)

{

  string url;

  url="Default2.aspx?name="+TextBox1.Text + "&pwd="+TextBox2.Text;

  Response.Redirect(url);

}
4、新建另一个Web页面,命名为Default2.aspx

5、在Default2中放置两个Label1,Label2

在Default2.aspx.cs的Page_Load中添加如下代码:

protected void Page_Load(object sender, EventArgs e)

{

   Label1.Text=Request.QueryString["name"].ToString();

   Label2.Text=Request.QueryString["pwd"].ToString();

}

运行,即可看到传递后的结果了。





二、使用Session变量

使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,变量才会消失。

演示示例如下:

1、创建一个Web页面,命名为Default1.aspx

2、在新建的Default1中放置一个Button1,在放置两个TextBox1,TextBox2

3、为Button1按钮创建Click事件代码如下:

protected void Button1_Click(object sender, EventArgs e)

{

   Session["Name"]=TextBox1.Text;

   Session["Pwd"]=TextBox2.Text;

   Response.Redirect("Default2.aspx");

}
4、新建另一个目标页面命名为Default2 .aspx

5、在Default2页面中放置两个Label1,Label2标签。

在Default2.aspx.cs的Page_Load中添加如下代码:

protected void Page_Load(object sender, EventArgs e)

{

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

   Label2.Text=Session["Pwd"].ToString();

  // Session.Remove("Name");

  // Session.Remove("Pwd");

}
运行后即可看到传递后的结果了。





三、使用Server.Transfer

演示示例如下:

1、创建一个Web页面,命名为Default1.aspx

2、在新建的Default1中放置一个Button1,在放置两个TextBox1,TextBox2

3、Button1按钮创建Click事件代码如下:

protected  void Button1_Click(object sender, EventArgs e)

{

   Server.Transfer("Default2.aspx");

}
4、在Default1.aspx.cs中创建两属性 Name, Pwd来存储TextBox1,TextBox2控件的值,代码如下:

public partial class Default1 : System.Web.UI.Page

{

   public String Name

    {

        get

        {

            return this.TextBox1.Text;

        }

    }

 

    public string Pwd

    {

        get

        {

            return this.TextBox2.Text;

        }

    }

    protected void Page_Load(object sender, EventArgs e)

    {

    }

    protected void Button2_Click(object sender, EventArgs e)

    {

        Server.Transfer("Default2.aspx");

    }

}
5、新建另一个目标页面命名为Default2.aspx

6、在Default2中放置两个Label1,Label2  标签控件。

在Default2.aspx.cs的Page_Load中添加如下代码:

protected void Page_Load(object sender, EventArgs e)

{
     if (!IsPostBack)

     {

            Default1 myver;

            myver = (Default1)Context.Handler;

            this.Label1.Text=myver.Name;

            this.Label2.Text = myver.Pwd;

     }

}




四、 使用Cookie对象变量

这个也是大家常使用的方法,与Session相比,Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

1、在Default1.aspx创建一个文本框TextBox1和一个按钮控件Button1。

2、在Default1.aspx.cs中添加下如代码

protected void Button1_Click(object sender, EventArgs e)

    {

        HttpCookie cookie_name = new HttpCookie("myname");

        cookie_name.Value = this.TextBox1.Text;

        Response.AppendCookie(cookie_name);

        Server.Transfer("Default2.aspx");
}

3、Default2.aspx.cs中代码如下:

protected void Page_Load(object sender, EventArgs e)

{

this.Label1.Text = Request.Cookies["myname"].Value.ToString();

}



五、 PostBackUrl()方法

1、 在页面default.1.aspx中的代码如下:

<body>

    <form id="form1" runat="server">

    <div>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

        <asp:Button ID="Button1" runat="server" PostBackUrl="~/Default3.aspx"

            Text="def3" />
    </div>

    </form>

</body>

2、在Default2.aspx.cs中的代码:



protected void Page_Load(object sender, EventArgs e)

{

      if (PreviousPage != null)

        {

            TextBox textbox = (TextBox)this.PreviousPage.FindControl("TextBox1");

            Response.Write(textbox.Text);

        }

 }


注意,PreviousPage是Page类的一个新属性,PreviousPage返回一个Page对象,这个对象中的控件可能使用FindControl()方法来方问。


六、利用一个类来传递页面的值

在Asp.net中创建一类,并取一个名字,如UserInfo,系统会自动将该类放在App_Code文件夹中。

其中类的代码如下:

public class UserInfo

{

    public UserInfo()

    {

       //

       //TODO: 在此处添加构造函数逻辑

       //

    }

        private TextBox textName;

        public TextBox TextName

        {

            get

            {

                return textName;

            }

            set

            {

                textName = value;

            }

        }

        private TextBox textPwd;

        public TextBox TextPwd

        {

            get

            {

                return textPwd;

            }

            set

            {

                textPwd = value;
            }

        }

        private TextBox textEmail;

        public TextBox TextEmail

        {

            get

            {

                return textEmail;

            }

            set

            {

                textEmail = value;

            }

        }
}
2、在页面Default1.aspx中创建三个文本框和一个按钮,TextBox1,TextBox2,TextBox3三个文本框的ID分别为:TextName,TextPwd ,TextEmail代码见下面:

<body>

    <form id="form1" runat="server">

    <div>

 

        <asp:TextBox ID="TextName" runat="server"></asp:TextBox>

        <asp:TextBox ID="TextPwd" runat="server"></asp:TextBox>

        <asp:TextBox ID="TextEmail" runat="server"></asp:TextBox>

        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

        <br />

  

    </div>

    </form>

</body>



3、在Default1.aspx.cs中的代码如下,参见上面和下面控件ID蓝色名称:

 public UserInfo myyInfo

    {

        get

        {

            UserInfo info = new UserInfo();

            info.TextName = TextName;

            info.TextPwd = TextPwd;

            info.TextEmail = TextEmail;

            return info;

        }

    }

 
  
 protected void Button1_Click(object sender, EventArgs e)

    {

        this.Button1.PostBackUrl = "~/Default2.aspx";

    }



4、下面列出目标页面Default2.aspx上关键代码,

在Default2.aspx文件的Page指令后面添加PreviousPageType指令,如下所示:



<%@ Page Language="C#" CodeFile="Default5.aspx.cs" Inherits="Default5" %>

<%@ PreviousPageType VirtualPath="~/Default1.aspx" %>

5、在目标页面上创建三个标签控件Label1,Label2,Label3,分别用于显示上一个页面传过来的用户姓名,密码和电子邮件地址。



6、在Defautl2.aspx.cs中的代码如下:
protected void Page_Load(object sender, EventArgs e)

{

        UserInfo myInfo = PreviousPage.myyInfo;

        Label1.Text = myInfo.TextName.Text;

        Label2.Text = myInfo.TextPwd.Text;

        Label3.Text = myInfo.TextEmail.Text;

}


分享到:
评论

相关推荐

    asp.net 页面之间传值方法总结.

    以下是对几种常用的ASP.NET页面之间传值方法的详细总结: #### 1. 使用 QueryString 传递参数 **定义与特点**: - QueryString 是一种在URL后面通过问号附加参数的传统方法。 - 它的优点在于实现简单,适用于传递...

    解析6种ASP.NET跨页面传值的方法

    ### 解析6种ASP.NET跨页面传值的方法 在ASP.NET开发中,跨页面传值是经常遇到的一个问题。为了确保用户体验良好且程序逻辑清晰,开发者需要掌握多种跨页面传值的技术。本文将详细介绍六种常用的ASP.NET跨页面传值...

    asp.net页面间的传值汇总

    本文将对几种常见的ASP.NET页面间传值方式进行深入解析,包括GET、POST、页面对象属性及Cookie,旨在帮助开发者更好地理解和运用这些技术。 #### 一、GET方式(使用QueryString显式传递) **方式描述**:GET方式...

    ASP.NET中页面传值的几种方法

    ### ASP.NET中页面传值的几种方法 在ASP.NET开发中,页面间的传值是非常重要的一个环节,这对于实现用户交互、数据处理等功能至关重要。本文将详细介绍ASP.NET中常见的几种页面传值方法,并对其进行深入解析。 ###...

    asp.net中五种页面传值方法

    asp.net中五种页面传值方法,熟悉使用的五种页面传值方法的使用,对你开发网站有大的帮助的

    ASP.NET页面间的传值的几种方法(总结)

    本文将详细介绍几种常用的ASP.NET页面间传值技术,并提供具体的代码示例。 #### 一、使用QueryString传值 **概述**: QueryString是最常见的传值方式之一,通过URL来传递参数。当用户点击按钮或链接时,可以将表单...

    asp.net 父子页面传值

    首先,我们要了解ASP.NET页面生命周期的基础知识。每个ASP.NET页面都有自己的生命周期,包括初始化、加载事件、验证、呈现和卸载等阶段。父子页面间的通信通常发生在这些阶段中的特定时刻,以确保数据的正确传递和...

    ASP.NET 页面间传值的几种方法

    在本文中,我们将讨论 ASP.NET 页面间传值的五种方法:使用 QueryString 变量、使用 Application 对象变量、使用 Session 变量、使用 Cookie 对象变量和使用 Server.Transfer 方法。 1. 使用 QueryString 变量 ...

    asp.net页面各种传值方式

    ASP.NET页面传值是Web开发中的重要技能,它允许数据在不同的页面之间或者同一页面的不同生命周期阶段进行传递。本文将详细讲解五种常见的ASP.NET页面传值方式:Query String、Hidden Field、View State、Session以及...

    ASP.net跨页面传值方式

    为了实现这一功能,ASP.NET提供了多种跨页面传值的方法,每种方法都有其适用场景和局限性。本文将详细介绍五种常见的跨页面传值方式:使用QueryString变量、使用Application对象变量、使用Session变量、使用Cookie...

    ASP.NET中页面传值的几种方法收藏

    根据提供的文件信息,本文将详细介绍ASP.NET中常用的几种页面传值方法,并对每种方法进行深入解析,帮助开发者更好地理解和应用这些技术。 ### 1. 使用表单提交 (Form Post) 这是最传统的页面传值方式之一,通过`...

    ASP.NET跨页面传值技巧

    ASP.NET跨页面传值是Web应用程序中常见的需求,通常用于在不同页面之间传递数据。以下将详细介绍几种常用的ASP.NET跨页面传值技巧。 1. **使用QueryString变量**: QueryString是通过URL参数来传递数据的方式。在a...

    asp.net中页面之间的传值(三种方法)

    在ASP.NET中,页面间的值传递是一个常见的需求,本文主要介绍了三种实现方法:QueryString、Session变量和Server.Transfer。每种方法都有其特点和适用场景。 首先,使用QueryString是一种简单直观的方式。通过在URL...

    ASP.NET页面间的传值的几种方法

    ASP.NET页面间的传值是开发过程中常见的需求,尤其是在构建多页面的应用程序时。本文将详细介绍在ASP.NET Web Forms中三种常见的传值方法:Querystring、Session变量和Server.Transfer。 一、使用Querystring ...

    asp.net实现页面传值的方法集合

    本文将详细介绍几种常用的ASP.NET页面传值方法,并通过具体的示例代码来帮助理解每种方式的特点及适用场景。 #### 一、使用Response.Redirect进行传值 这种方式是通过服务器端重定向到另一个页面,并在URL中携带...

    asp.net的ajax传值

    1. **UpdatePanel**:ASP.NET AJAX控件工具箱中的UpdatePanel是实现部分页面更新的基础。它可以将一个或多个控件包裹起来,当这些控件触发事件时,UpdatePanel会以异步方式与服务器通信,只更新该面板内的内容,而...

    ASP.NET页面之间传值

    ASP.NET C#页面之间传值.QueryString,Application,Session,Cookie,Server.Transfer

    ASP.NET页面传值汇总

    ASP.NET页面传值是网页应用程序开发中的核心技能之一,它涉及到不同页面间的通信和数据传递。本文主要介绍了三种常见的ASP.NET页面传值方法:Query String(URL方式)、Cookies和Session。 1. Query String(URL...

    ASP.NET页面之间的传值

    ASP.NET页面间的传值是Web开发中不可或缺的一部分,由于HTTP协议的无状态特性,服务器无法在不同的请求之间保持数据。为了在ASP.NET中解决这个问题,开发者可以采用多种方法来传递和保存数据。以下是对这些方法的...

Global site tag (gtag.js) - Google Analytics