ASP 网页间数据传递除了使用窗体外,还可以使用Request对象来传递数据。当页面中的表单以POST方法提交数据时,可以用Request.Form集合获取提交的数据。当用户以FileName.aspx?ParamName=ParamValue形式传递数据,或表单以GET方法提交数据,可以使用Request.QueryString集合获取数据。 使用 QueryString 集合对象获取传递值,其优点是简单,但问题是浏览程序网址栏会显示传递值。
下面举例说明使用Request对象实现页面间的数据传递的方法。
下面将建立包含两个步骤的 Web 窗体,在输入用户名称和密码后,单击【提交】按钮在第2页 ASP.NET 程序中显示用户数据。
(1) 新建一个Web站点Ex7_3。
(2) 在【解决方案资源管理器】中,添加一个Web窗体页Second.aspx。
(3) 在Default.aspx中,切换到【设计】视图,向其中添加2个Label控件并设置其Text属性值;添加2个TextBox控件;添加一个Button控件并设置其Text属性值。如图7-4所示。
(4) 双击Button控件,在Default.aspx.cs源程序窗体中添加如下代码:
- protected void Button1_Click(object sender, EventArgs e)
- {
- string url=string.Format("Second.aspx?username= {0}&password={1}",
- Server.UrlEncode(TextBox1.Text),
- Server.UrlDecode(TextBox2.Text));
- Response.Redirect(url);
- //Server.Transfer(url);
- }
(5) 在Second.aspx中,切换到【设计】视图,向其中添加2个Label控件。在【解决方案资源管理器】双击Second.aspx.cs,在源程序窗体中添加如下代码:
- protected void Page_Load(object sender, EventArgs e)
- {
- Label1.Text = "用户名称:" +
- Server.UrlDecode(Request.QueryString["username"]);
- Label2.Text = "用户密码:" +
- Server.UrlDecode(Request.QueryString["password"]);
- }



