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
全局應用類
子產品
沒有友善的屬性可用。使用 HttpContext.Response 屬性。
處理器
全局
總是可以通過靜态的 HttpContext.Current.Response 屬性來擷取到目前的 HttpResponse 對象。
[根據 Adam Freeman – Pro ASP.NET MVC 5 Platform 選譯]