
2.1 Response对象

视频讲解
2.1.1 Response对象概述
Response对象用于将数据从服务器发送回浏览器。它允许将数据作为请求的结果发送到浏览器中,并提供有关响应的信息;还可以用来在页面中输入数据、在页面中跳转,并传递各个页面的参数。它与HTTP协议的响应消息相对应。
假如将用户请求服务器的过程比喻成客户到柜台买商品的过程,那么在客户描述要购买的商品(如功能、大小、颜色等)后,销售员就会将商品摆在客户的面前,这就相当于Response对象将数据从服务器发送回浏览器。
2.1.2 Response对象的常用属性和方法
Response对象将HTTP响应数据发送到客户端,并包含有关该响应的信息,其常用属性、方法及说明如表2.1和表2.2所示。
表2.1 Response对象的常用属性及说明

表2.2 Response对象的常用方法及说明

2.1.3 在页面中输出数据
Response对象通过Write方法或WriteFile方法在页面上输出数据。输出的对象可以是字符、字符数组、字符串、对象或文件。
【例2.1】在页面中输出数据。(示例位置:资源包\mr\TM\02\01)
下面的示例主要是使用Write方法和WriteFile方法实现在页面上输出数据。在运行程序之前,在F盘上新建一个WriteFile.txt文件,文件内容为Hello World!!! Hello World!!! Hello World!!! Hello World!!!。执行程序,示例运行结果如图2.1所示。

图2.1 在页面中输出数据
程序实现的主要步骤如下。
新建一个网站,默认主页为Default.aspx。在Default.aspx的Page_Load事件中先定义4个变量,分别为字符型变量、字符串变量、字符数组变量和Page对象,然后将定义的数据在页面上输出。代码如下:

注意
应用WriteFile方法输出一个文件时,该文件必须是已经存在的。如果不存在,将产生“未能找到文件”异常。
2.1.4 页面跳转并传递参数
通过Response对象的Redirect方法可以实现页面重定向的功能,并且在重定向到新的URL时可以传递参数。
例如,将页面重定向到welcome.aspx页的代码如下:

在页面重定向URL时传递参数,使用“?”分隔页面的链接地址和参数,有多个参数时,参数与参数之间使用“&”分隔。
例如,将页面重定向到welcome.aspx页并传递参数的代码如下:

【例2.2】页面跳转并传递参数。(示例位置:mr\TM\02\02)
下面的示例主要通过Response对象的Redirect方法实现页面跳转并传递参数。执行程序,在TextBox文本框中输入姓名,并选择性别,单击“确定”按钮后,跳转到welcome.aspx页,示例运行结果如图2.2和图2.3所示。

图2.2 页面跳转并传递参数

图2.3 重定向的新页
程序实现的主要步骤如下。
(1)新建一个网站,默认主页为Default.aspx,在Default.aspx页面上添加1个TextBox控件、1个Button控件和2个RadioButton控件,它们的属性设置如表2.3所示。
表2.3 Default.aspx页面中控件的属性设置及用途

在“确定”按钮的btnOK_Click事件中实现跳转到页面welcome.aspx并传递参数Name和Sex,代码如下:

注意
通过URL地址传递多个参数时,应使用“&”符号作为多个参数之间的连接符。
(2)在该网站中添加一个新页,将其命名为welcome.aspx。在页面welcome.aspx的初始化事件中获取Response对象传递过来的参数,并将其输出在页面上。代码如下:

2.1.5 输出二进制图像
Response对象不但可以使用Write方法在页面上输出数据、使用WriteFile方法将文件内容在页面上输出,而且还可以使用BinaryWrite方法显示二进制表示的数据,如图像、图片等。
【例2.3】输出二进制图像。(示例位置:mr\TM\02\03)
下面的示例主要通过Response对象的BinaryWrite方法实现输出二进制图像。执行程序,示例运行结果如图2.4所示。

图2.4 输出二进制图像
程序实现的主要步骤如下。
新建一个网站,默认主页为Default.aspx。首先引入System.IO命名空间,然后在Default.aspx页面初始化事件中将图片文件读取到文件流中,并将图像以二进制数据的形式输出到页面。代码如下:

技巧
将Response对象的Write方法与JavaScript脚本语言结合使用。
1. 弹出提示对话框
Response.Write方法主要用来在页面上输出信息。该方法还可以结合JavaScript脚本语言,弹出提示对话框。代码如下:

2. 关闭窗口
在ASP.NET中没有提供直接关闭窗口的方法,但是可以使用JavaScript脚本关闭窗口。代码如下:
