众所周知,在View(MVC)中创建变量或放置逻辑是一种非常糟糕的做法,所以我的问题恰恰相反,在模型中创建视图组件(使用html标签)是一种不好的做法(MVC)?
有时候,在我的视图中,一个简单的循环是不够的,我需要使用递归函数来转换我的节点" tree"到我的模型中的字符串对象,然后在视图中打印字符串对象。所以我承认,我在我的模型中生成了html标签,即使总是将树转换为列表然后发送一个"循环的"列表到视图。
但是我的第二个原因是我在我的模型中创建html组件,因为当我更改框架时更容易,我不需要将我的视图转换为另一种格式(.jsp,.xhtml for Facelets, ...)。
=>在模型(MVC)中使用html标签是一种非常糟糕的做法吗?为什么?感谢
答案 0 :(得分:2)
您正在选择一种表示模型数据(html)的特定方式,因为它更容易。这是一个非常糟糕的决定,完全违背了MVC模式。
但是,您可以非常轻松正确地执行此操作。使用xml
!在您的视图中使用xslt
到xml
的{{1}}转换非常简单。如果在不弄乱模型的情况下在视图中进行更改,您会感到惊讶。
在模型(MVC)中使用html标签是一种非常糟糕的做法吗?为什么?
每一件软件都在发展。需求发生变化,功能被添加,甚至架构也发生了变化。在模型和视图之间传输数据时,使用html
来表示数据会使更改变得更加困难。
比如说,确定您编写的可爱报告由模型呈现为html
并由视图直接呈现给浏览器现在需要在html
生成好(最近我的任务是真正的要求)。看看会有多难?然后,您可以将数据从csv
转换为html
。
但是,如果您已在csv
中创建了报告,并将您的视图应用于将xml
应用于其中以将其转换为xslt
,则需要提供html
是微不足道的。它只是另一个csv
。
答案 1 :(得分:0)
如果您打算遵守MVC模型,那么在模型中保留View信息绝对不是它的一部分。
如果您想通过网络将数据作为JSON发送到移动应用程序,该怎么办?如果您需要与另一个不显示数据的系统集成,但只处理它,该怎么办?突然之间,您在模型中得到了一些不必要的额外数据,您需要在发送之前将其剥离。