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

[译] ASP.NET 生命周期 – ASP.NET 上下文对象(八)的更多相关文章

  1. [译] ASP.NET 生命周期 – ASP.NET 应用生命周期(一)

    概述 ASP.NET 平台定义了两个非常重要的生命周期.第一个是 应用生命周期  (application life cycle),用来追踪应用从启动的那一刻到终止的那一刻.另一个就是 请求生命周期 ...

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

    ASP.NET 上下文对象 ASP.NET 提供了一系列对象用来给当前请求,将要返回到客户端的响应,以及 Web 应用本身提供上下文信息.间接的,这些上下文对象也可以用来回去核心 ASP.NET 框架 ...

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

    使用 HttpApplication 对象 ASP.NET 框架中的许多类都提供了许多很方便的属性可以直接映射到 HttpContext 类中定义的属性.这种交叠有一个很好的例子就是 HttpAppl ...

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

    使用 HttpRequest 对象 HttpRequest 对象描述的是一个正在被处理的 HTTP 请求.下表列举了 HttpRequest 中的属性,它们提供了当前请求的相关信息(HttpReque ...

  5. [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(三)

    使用特殊方法处理请求生命周期事件 为了在全局应用类中处理这些事件,我们会创建一个名称以 Application_ 开头,以事件名称结尾的方法,比如 Application_BeginRequest.举 ...

  6. [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(四)

    不使用特殊方法来处理请求生命周期事件 HttpApplication 类是全局应用类的基类,定义了可以直接使用的一般 C# 事件.那么使用标准 C# 事件还是特殊方法那就是个人偏好的问题了,如果喜欢, ...

  7. [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(二)

    ASP.NET 请求生命周期 全局应用类也可以用来跟踪每个独立请求的生命周期,包括请求从 ASP.NET 平台传递到 MVC 框架.ASP.NET 框架会创建一个定义在 Global.asax 文件中 ...

  8. Asp.net生命周期与Http协议

    Http协议,底层的东西还是不是特别熟悉,感觉要经过沉淀之后才能理解这些东西吧 1.Asp.net生命周期 Asp.net生命周期: 从发起请求开始,到IIS进行处理的全部过程,然后再到获取结果 当请 ...

  9. Git使用总结 Asp.net生命周期与Http协议 托管代码与非托管代码的区别 通过IEnumerable接口遍历数据 依赖注入与控制反转 C#多线程——优先级 AutoFac容器初步 C#特性详解 C#特性详解 WPF 可触摸移动的ScrollViewer控件 .NET(C#)能开发出什么样的APP?盘点那些通过Smobiler开发的移动应用

    一,原理 首先,我们要明白Git是什么,它是一个管理工具或软件,用来管理什么的呢?当然是在软件开发过程中管理软件或者文件的不同版本的工具,一些作家也可以用这个管理自己创作的文本文件,由Linus开发的 ...

随机推荐

  1. hdu 2665 划分树

    思路:裸的划分树 #include<iostream> #include<algorithm> #include<cstring> #include<cstd ...

  2. C# 实现远程控制软件的关键技术

    一.服务器端多线程Socket技术    用TcpListener进行侦听,接受客户端连接,有客户端连进来后开启处理线程处理数据,代码如下:    using System; using System ...

  3. MSSQL AlwaysOn中的“主角色中的连接”和“可读辅助副本”初探

    一.开篇 在进行配置只读路由的时候,需要进行配置可用性组中的可用性副本,如下如所示: 每一项都是啥意思可以看看这个链接 https://msdn.microsoft.com/zh-cn/library ...

  4. 两种查看eclipse或MyEclipse是64bit还是32bit的方法

    方法一: 对于:eclipse 打开eclipse后:Help-->About Eclipse-->Installation Details-->Configuration 如果看到 ...

  5. 资源汇集:nginx教程从入门到精通

    http://linux.cn/article-4279-1.html

  6. iOS常用的设计模式

    iOS常用的设计模式有:单例模式.委托模式.观察者模式和MVC模式.下面分别简单介绍. 一:单例模式 我们常用的UIApplication.NSUserdefaults.NSNotificationC ...

  7. Adapter模式

    Adapter模式主要用于将一个类的接口转换为另外一个接口,通常情况下再不改变原有体系的条件下应对新的需求变化,通过引入新的适配器类来完成对既存体系的扩展和改造.实现方式主要包括: 1.类的Adapt ...

  8. iOS进阶——可取消的block

    + (id)performBlock:(void (^)())aBlock onQueue:(dispatch_queue_t)queue afterDelay:(NSTimeInterval)del ...

  9. vc 编译执行bat

    转载:

  10. jQuery ajax 请求php遍历json数组到table中

    html代码(test.html),js在html底部 <!DOCTYPE html> <html lang="en"> <head> < ...