使用 HttpResponse 對象 HttpResponse 對象是與 HttpRequest 對象相對應的,用來表示構建中的響應。它當中提供了方法和屬性可供我們自定義響應,有一些在使用 MVC 視圖的時候很少使用到,但是在使用其他組件的時候可能十分有用,比如模塊是處理器。 同 HttpReque
使用 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 選譯]