2012-06-15 62 views
4

在MVC框架中,負責定義標題的是控制器還是視圖?關於MVC中標題的問題

想象一下下載一個文件的情況,會呈現內容,所以我想象一下控制器會設置適當的頭文件下載,是否正確?

另一點是,我對mimes有懷疑... 默認情況下我們使用text/html; charset = UTF-8,另一種是將mime類型的文件下載,這是正確的嗎?

回答

1
  1. 正確,控制器應「決定」,這是適當的頭
  2. 內容類型是要更改標題。
+0

控制者的責任是處理輸入,而不是決定輸出 – Gordon

+0

@戈登:我通常同意你(默默地),但在這裏,我認爲這是錯誤的。以j2ee爲例。控制器負責「請求」和「響應」。它不控制視圖內部*的內容,但它控制*將要發送的內容(主要是標題)。在許多PHP框架中,它也是這種情況(例如symfony) – Shikiryu

+0

你說它控制應用程序,並且是一個請求並將狀態設置爲200(ok)或404(not found)。 在這種情況下,他收到內容併發送渲染視圖,對吧? –

2

所有的表示邏輯都是View實例的責任。即使您使用MVP模式,視圖是被動實體視圖(「被動」並不意味着「啞」或「只是模板」),這也適用。

控制器應該只負責改變模型層和當前視圖的狀態。

+0

如果我有一個請求下載,我只有一個視圖來設置標題類型? –

+0

是的。它會向模型層請求文件詳細信息,並根據響應生成錯誤頁面或啓動下載。 –

+0

所以要完成這個問題......然後要渲染一個完整的頁面,使用「text/html」和其餘的MIME用於下載,這是正確的? obrigado –