[译] ASP.NET 生命周期 – ASP.NET 上下文对象(八)

简介: 使用 HttpResponse 对象 HttpResponse 对象是与 HttpRequest 对象相对应的,用来表示构建中的响应。它当中提供了方法和属性可供我们自定义响应,有一些在使用 MVC 视图的时候很少使用到,但是在使用其他组件的时候可能十分有用,比如模块是处理器。

使用 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 选译]

相关文章
|
1月前
|
开发框架 前端开发 .NET
VB.NET中如何利用ASP.NET进行Web开发
在VB.NET中利用ASP.NET进行Web开发是一个常见的做法,特别是在需要构建动态、交互式Web应用程序时。ASP.NET是一个由微软开发的开源Web应用程序框架,它允许开发者使用多种编程语言(包括VB.NET)来创建Web应用程序。
47 5
|
2月前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
2月前
|
开发框架 .NET 开发工具
【Azure 应用服务】App Service 的.NET Version选择为.NET6,是否可以同时支持运行ASP.NET V4.8的应用呢?
【Azure 应用服务】App Service 的.NET Version选择为.NET6,是否可以同时支持运行ASP.NET V4.8的应用呢?
|
3月前
|
开发框架 搜索推荐 前端开发
【.NET全栈】ASP.NET开发Web应用——Web部件技术
【.NET全栈】ASP.NET开发Web应用——Web部件技术
|
2月前
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
|
4月前
|
开发框架 .NET API
ASP.NET Core Web中使用AutoMapper进行对象映射
ASP.NET Core Web中使用AutoMapper进行对象映射
|
4月前
|
Linux C# C++
【.NET Developer】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
本文介绍了如何使用VS2019和.NET框架创建一个Blazor应用,并将其部署到Azure应用服务。首先,Blazor是一个使用C#而非JavaScript构建交互式Web UI的框架,支持共享服务器和客户端应用逻辑,以及与Docker和Azure集成。任务包括创建Blazor项目,配置Dockerfile为Linux容器,本地测试,发布到Azure Container Registry (ACR),然后在Azure App Service for Container上部署。在部署过程中,需确保Docker设置正确,开启ACR的Admin访问权限,并监控镜像拉取和容器启动日志。
184 0
|
1月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
34 7
|
1月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
47 0
|
2月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
40 0