MVC:添加http头:控制器还是视图?

时间:2011-05-19 16:30:48

标签: model-view-controller http http-headers

在MVC应用程序中添加http标头的正确位置在哪里:在控制器中还是在视图中?

(从技术上讲,它可以在控制器或视图中执行,但对于我来说,使用MVC模型更好的套件是什么解决方案尚不清楚)

2 个答案:

答案 0 :(得分:3)

我认为这取决于场景。例如,控制器可能需要某些安全凭证,如果它们不在请求/会话中,则会向客户端发送Location:标头,将其指向登录视图。

视图可以实现发送的HTTP标头来控制内容的缓存等。

答案 1 :(得分:3)

MVC模式的目的是提供明确的职责分离。视图处理表示,控制器处理事件,模型提供业务逻辑。 (我意识到许多Web框架并不完全遵循MVC模式。例如,Django称自己为MVT(或类似的东西))。

因此,由于HTTP标头是演示文稿的详细信息,因此它们应该放在视图中。一个编写良好的MVC应用程序将允许您使用相同的控制器和模型具有非基于Web的视图(例如桌面版本)。将标题放在控制器中会破坏这种明显的分离。