2012-06-15 61 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 –