使用 HttpResponse 对象
HttpResponse 对象是与 HttpRequest 对象相对应的,用来表示构建中的响应。它当中提供了方法和属性可供我们自定义响应,有一些在使用 MVC 视图的时候很少使用到,但是在使用其他组件的时候可能十分有用,比如模块是处理器。
同 HttpRequest 一样,这个类对于 ASP.NET 是很基础的,用来处理请求,在 MVC 框架中可以生成 HTML(或者其他数据)并返回到客户端。下表中列举了常用的方法与属性:
表 1 – HttpResponse 类中常用的成员
名称 | 描述 |
AppendHeader(name, val) | 一个简便的方法用来给响应添加一个报文头。 |
BufferOutput | 获取或设置一个值用来指示这个请求在被发送到浏览器之前是否可以缓存完毕。默认值是 true。如果将其改变为 false 将会阻止接下来的模块和处理器修改这个响应。 |
Cache | 返回 HttpCachePolicy 对象来指定响应的缓存策略。 |
CacheControl | 获取或者设置请求 HTTP 报文头的 cache-control。 |
Charset | 获取或者设置响应的字符集。 |
Clear()ClearContent() | Clear 和 ClearContent 方法是同等的,它们都会从响应中移除内容。 |
ClearHeaders() | 移除响应的所有报文头。 |
ContentEncoding | 获取或者设置响应内容的编码方式。 |
Headers | 返回一个响应报文头的集合。 |
IsClientConnected | 如果客户端依然连接在服务器上就返回 true。 |
IsRequestBeingDirected | 如果客户端会发送一个重定向就返回 true。 |
Output | 返回一个 TextWriter 对象可以用来向响应中写入文本。 |
OutputStream | 返回一个 Stream 对象可以用来向响应中写入二进制数据。 |
RedirectLocation | 获取或者设置 HTTP Location 报文头值。 |
Status | 获取或者设置响应的状态;默认是 200(OK)。 |
StatusCode | 获取或者设置状态的数字部分;默认是 200(OK)。 |
StatusDescription | 获取或者设置状态的文字部分;默认是 (OK)。 |
SuppressContent | 如果设置为 true,这个属性将会阻止响应内容发送到客户端。 |
Write(data) | 向响应输出流中写入数据。 |
WriteFile(path) | 向输出流中写入指定文件的内容。 |
在下表中,我总结了一些在 ASP.NET 和 MVC 框架的组件中方便的属性。
表 2 - 在不同的 ASP.NET/MVC 组件中获取一个 HttpResponse 对象
组件 | 技术 |
Controller | 使用方便的 Response 属性。 |
View | 使用方便的 Response 属性。 |
全局应用类 | 使用方便的 Response 属性。 |
模块 | 没有方便的属性可用。使用 HttpContext.Response 属性。 |
处理器 | 没有方便的属性可用。使用 HttpContext.Response 属性。 |
全局 | 总是可以通过静态的 HttpContext.Current.Response 属性来获取到当前的 HttpResponse 对象。 |
[根据 Adam Freeman – Pro ASP.NET MVC 5 Platform 选译]