使用 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. linux下 yum源、rpm、源代码安装mysql

    mysql的安装 一.yum源格式安装mysql 1.将下载的yum包上传到linux上: [root@localhost ~]# ls mysql-community-release-el6-5.n ...

  2. ubuntu禁用笔记本自带键盘

    ubuntu如何禁用笔记本键盘 打开终端运行命令 xinput list Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core ...

  3. LeetCode 344

    Reverse String Write a function that takes a string as input and returns the string reversed. Exampl ...

  4. Wince 对话框程序设计

    如何编程实现wince下“打开文件夹对话框”呢?这里就要涉及到下面要分析的知识了,对话框是一种特殊的窗口,它在wince 作为应用程序和程序使用者之间的交流窗口,通过显示和获取信息使人们的交流更加方便 ...

  5. 【hdu2896】病毒侵袭

    题目描述 当太阳的光辉逐渐被月亮遮蔽,世界失去了光明,大地迎来最黑暗的时刻....在这样的时刻,人们却异常兴奋--我们能在有生之年看到500年一遇的世界奇观,那是多么幸福的事儿啊~~但网路上总有那么些 ...

  6. 关于servlet与jsp&java类传值问题

    为了实现单击左侧导航栏,动态改变右侧(一个jsp文件)的内容,需要改变变量var的值,进而实现改变default部分内容的目的(自己想的方法,因为实在是layman.应该有简便快捷的方法,可我不知道. ...

  7. 初探html5---Video + DOM(视频播放)

    1:HTML5 开发环境下  lang="en" 2: <video width="320" height="240" control ...

  8. OpenXml Excel数据导入导出(含图片的导入导出)

    声明:里面的很多东西是基于前人的基础上实现的,具体是哪些人 俺忘了,我做了一些整合和加工 这个项目居于openxml做Excel的导入导出,可以用OpenXml读取Excel中的图片 和OpenXml ...

  9. NGUI的原理机制:深入剖析UIPanel,UIWidget,UIDrawCall底层原理

    这是我去搜狐畅游面试时,面试官问的一个问题.问NGUI的机制原理是什么?就是这个插件是根据什么写出来的.当时没答上来,下面是我从转载过来的,可以研究研究. 之前项目中用的NGUI的版本是3.0.7 f ...

  10. Android之进度条1

    第一种方法(比较简单): package com.example.dialogdemo; import java.util.Random; import android.app.Activity; i ...