页面传值---ASP.NET之5种全局变量!页面间传值方法!.
### ASP.NET 页面传值方法详解 在Web开发中,页面之间的数据传递是非常常见的需求之一,尤其是在像ASP.NET这样的框架中。本文将详细介绍ASP.NET中五种常用的全局变量以及页面间传值的方法,帮助开发者更好地理解和掌握这些技术点。 #### 一、使用 QueryString **QueryString** 是一种非常简单的页面传值方式,它通过URL地址携带参数,适用于一些简单且不涉及敏感数据的情况。 - **示例代码:** - 在`a.aspx`页面中: ```csharp 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`页面中接收并显示传递过来的数据: ```csharp private void Page_Load(object sender, EventArgs e) { Label2.Text = Request.QueryString["name"]; } ``` #### 二、使用 Application **Application** 对象是用于存储所有用户共享的数据,它的作用域是整个应用程序级别的,适合于需要全局共享的数据存储。 - **示例代码:** - 在`a.aspx`页面中设置: ```csharp private void Button1_Click(object sender, System.EventArgs e) { Application["name"] = Label1.Text; Server.Transfer("b.aspx"); } ``` - 在`b.aspx`页面中读取数据: ```csharp private void Page_Load(object sender, EventArgs e) { string name; Application.Lock(); name = Application["name"].ToString(); Application.UnLock(); } ``` #### 三、使用 Session **Session** 与 **Application** 类似,但它是为每个会话提供数据存储,即每个用户都有独立的Session存储空间,适用于需要保持用户特定数据的情况。 - **示例代码:** - 在`a.aspx`页面中设置: ```csharp private void Button1_Click(object sender, System.EventArgs e) { Session["name"] = Label.Text; } ``` - 在`b.aspx`页面中读取数据: ```csharp private void Page_Load(object sender, EventArgs e) { string name; name = Session["name"].ToString(); } ``` #### 四、使用 Cookie **Cookie** 也是一种常用的页面传值方式,它可以存储在客户端的浏览器上,适用于需要在不同页面间持久化存储少量数据的情况。 - **示例代码:** - 在`a.aspx`页面中设置: ```csharp private void Button1_Click(object sender, System.EventArgs e) { HttpCookie cookie_name = new HttpCookie("name"); cookie_name.Value = Label1.Text; Response.AppendCookie(cookie_name); Server.Transfer("b.aspx"); } ``` - 在`b.aspx`页面中读取数据: ```csharp private void Page_Load(object sender, EventArgs e) { string name; name = Request.Cookies["name"].Value.ToString(); } ``` #### 五、使用 Server.Transfer **Server.Transfer** 方法用于在服务器端实现页面跳转,并可以将当前页面的状态传递到目标页面,使得目标页面能获取到当前页面的所有状态。 - **示例代码:** - 在`a.aspx`页面中设置: ```csharp public string Name { get { return Label1.Text; } } private void Button1_Click(object sender, System.EventArgs e) { Server.Transfer("b.aspx"); } ``` - 在`b.aspx`页面中读取数据: ```csharp private void Page_Load(object sender, EventArgs e) { IWeb web = (IWeb)Context.Handler; string name; name = web.Name; } ``` ### 总结 以上介绍了ASP.NET中五种常用的全局变量以及页面间传值的方法,每种方法都有其适用场景和特点: - **QueryString** 最简单但安全性较低; - **Application** 适用于需要全局共享的数据; - **Session** 适用于需要保持用户特定数据的情况; - **Cookie** 适用于需要在不同页面间持久化存储少量数据的情况; - **Server.Transfer** 能够实现在服务器端实现页面跳转,并可以将当前页面的状态传递到目标页面。 选择合适的数据传递方法可以根据实际应用场景来决定,从而达到最佳的效果。
- 蓝色的天堂2016-03-29谢谢分享!
- 粉丝: 11
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助