使用 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. 笔记——ES5 Array

    ES5里引入了一些新的数组方法.这些方法可以分为两组: 迭代方法和项的定位. 兼容性:chrome,firefox,safari3,及ie8以上都支持 1. every 查询数组中的每一项是否匹配某个 ...

  2. 关于JDK中的集合总结(三)

    泛型: jdk1.5出现的安全机制. 好处: 1,将运行时期的问题ClassCastException转到了编译时期. 2,避免了强制转换的麻烦. <>:什么时候用?当操作的引用数据类型不 ...

  3. 【路径寻找问题】UVa 10603 - Fill

    如家大神书上的例题.第一次接触也是按代码敲得.敲的过程感觉很直观.但自己写估计会写的乱七八糟.以后不能砍得难就不愿意做这种题.否则只能做一些水题了.(PS:48) 紫书 #include<ios ...

  4. cent0s7 显卡驱动导致重启黑屏

    由于 CentOS7.0 版本与前面的 CentOS6.5 及之前的版本的模式变更方法有很大 的不同,以前的版本中我们可以在vi /etc/inittab 文件中将id:5:initdefault 更 ...

  5. 纯css 写三角形

    <div style="width: 0;height: 0;border-left: 6px solid transparent;border-right: 6px solid tr ...

  6. Linux 命令 - scp: 远程文件拷贝

    scp 与普通的文件复制命令 cp 类似,而它们之间最大的差别在于 scp 命令的源或目标文件是远程文件. 命令格式 scp [options] [[user@]host1:]file1 ... [[ ...

  7. 函数function的方法call()以及apply()

    1.这两个方法十分重要:可以改变函数的作用域,也就是改变函数中的this     使用call()方法的时候,必须明确传入每一个参数,结果跟apply()是一样的,废话不多说,下面来一个简单的案例,便 ...

  8. C# 好书一本推荐

    书名<CLR Via C#>第三版中文版,我已上传: 下载地址:http://files.cnblogs.com/jackchiang/CLR_Via_Csharp.%E7%AC%AC3% ...

  9. Android Support v4,v7,v13

    Android Support v4 是最早(2011年4月份)实现的库.用在Android1.6 (API lever 4)或者更高版本之上.它包含了相对V4, V13大的多的功能. 例如:Frag ...

  10. html5 canvas 圆形抽奖的实例

    年底没啥,抽空学习了canvas,写了个html5抽奖的代码,造了个轮子,有用的童鞋可以拿走. 其中,canvas.onclick触发抽奖行为,概率可以在core.lottery()函数上添加,美化也 ...