Model view controller 直接从模型(MVC)获取HTML是个好主意吗?

Model view controller 直接从模型(MVC)获取HTML是个好主意吗?,model-view-controller,Model View Controller,查看Internet上一些用于web开发的MVC库的示例和教程,我发现其中许多库直接在模型类的代码中构造HTML,然后Controller将其发送到视图中,视图中只显示HTML。虽然这使得控制器和视图非常简单和干净,但我觉得这是一种错误的方法。总之,模型应该只检索数据,而不包含任何表示逻辑。控制器应将该数据传递给视图,视图将包含迭代该数据并生成最终HTML的代码 我的想法是正确的,还是遗漏了一些重要的观点?视图(大部分)和控制器之间共享表示逻辑。模型不应该关注表示逻辑 如果是这样的话,你就不需要

查看Internet上一些用于web开发的MVC库的示例和教程,我发现其中许多库直接在模型类的代码中构造HTML,然后Controller将其发送到视图中,视图中只显示HTML。虽然这使得控制器和视图非常简单和干净,但我觉得这是一种错误的方法。总之,模型应该只检索数据,而不包含任何表示逻辑。控制器应将该数据传递给视图,视图将包含迭代该数据并生成最终HTML的代码


我的想法是正确的,还是遗漏了一些重要的观点?

视图(大部分)和控制器之间共享表示逻辑。模型不应该关注表示逻辑

如果是这样的话,你就不需要分离关注点。这本身并不是一件坏事,但是您错过了将表示和业务逻辑分离的优势。所以不,这不是个好主意

也就是说,有一些表示逻辑元素可能会进入模型。想想cms。理想情况下,您将标记所有数据,比如xml,并在其上应用模板来交付数据。但是数据和模板保存在模型中。那么,什么是演示,什么是业务


有灰色区域,但大多数情况下很容易将表示和业务逻辑分开。

您的想法绝对正确。如果您想要清晰地分离关注点,最好让视图从模型生成HTML。在某些情况下,可以使用html助手。

直接从模型(MVC)获取html是一个好主意吗

我的直觉会说不。打破了关注点分离的概念