我知道这类问题被问了很多,我自己曾经问过这个问题,但是没有答案似乎适合我的问题。我认为通过做一个“一般”的方式而不是一个特定方式,它对我自己和其他人会更有帮助。
像'从视图中加载控制器'这样的问题'从控制器加载控制器''从另一个视图加载带控制器的视图'经常被问到,到目前为止我得出的结论是,这不是没有办法要做到这一点(我自己找到了解决方案),这只是一个糟糕的架构问题。
所以,我的问题是,什么是好的架构?
如果要加载不同的视图并帮助组织,模板方法很有用。那很棒。我认为问题是:
-model1,controller1,view1
-model2,controller2,view2
-view3
-view4
您可以在视图1或2中找到加载视图3和4的方法。但是当您想加载view2 innside view1时会发生什么?那里没有办法包含controller2。
我不是要求一种包含它的方法,我问的是正确的做法是什么?我已经看到了“重用模型”的答案。但我不太明白这意味着什么。
我认为回答这个问题并不能解决我到目前为止所遇到的问题(因为项目是如此先进,我必须重做),但它将帮助我从未开始的项目中做到这一点。
感谢您的帮助。
答案 0 :(得分:1)
视图的最佳实践之一是设计它,例如三个文件夹
常见:会有很多html片段,比如menues,sidebars,header,footer等等,甚至还有一些较小的部分,比如评论框或其他什么
内容类似于常见但更多与内容相关的视图,这些视图在大多数常见网站中都很有用
布局:此文件夹将包含您网站的可能布局,包含公共视图和内容视图
这对于更多了解MVC的视图检查此article
答案 1 :(得分:0)
我喜欢保持简单......
模型与我的数据库或其他数据源交互。这就是他们所做的一切。他们将数据作为输入并返回数据。
控制器充当请求端点并控制应用程序流/条件。他们从模型中获取正确的数据,验证数据(来自用户),做出有关做什么的决定。然后,他们使用正确的数据加载右视图。
视图只是HTML模板,可以显示控制器交给他们的任何数据。我的视图中唯一存在的“处理”是迭代数组以生成可重复元素,格式化和条件显示元素/数据。
我能想到的唯一一个真实实例,其中一个视图在其中加载另一个视图,就像导航元素或其他元素一样,这些元素是在多个(但不是全部)页面上重复的常见HTML。