如何使用MVC在同一页面上显示多个小部件

Gre*_*reg 10 model-view-controller

我对MVC如何工作有点困惑,除了基本的例子我找不到任何东西.

我想做一种基于小部件的设计; 您可以选择各种小部件进入您的页面.每个小部件都应该对自己负责 - 它应该有一个控制器和一个视图.但主页怎么样?突然间我有一个页面上有很多控制器!

显而易见的事情是以某种方式将控制器嵌入到视图中...... This is my widget {SomeWidget}但我读过"打破MVC范例".

有些小部件需要POST到不同的URL(比如搜索框进入结果页面),有些小部件需要POST回到同一个URL(比如在文章中添加注释会带你回到文章中).

最重要的是,用户应该能够编辑小部件周围的HTML - 例如,如果他们想要一个右侧的搜索框,他们可以键入<div style="float: right;">{SearchController}</div>(在我的范式破坏的世界中)

Ben*_*oît 2

我不太擅长网络编程,但我相信,从你描述的例子来看,整个页面应该有一个模型,一个视图和一个控制器。现在,视图本身应该包含页面中每个小部件的视图(页面控制器也是如此),它将收到的消息分派到该视图。

从概念上讲,有较低级别的 MVC(用于小部件)和较高级别的 MVC(用于页面)。而且 MVC 范式不会被打破。现在您可以编辑小部件周围的 HTML,它会更改页面模型(而不是任何小部件模型)。

希望这可以帮助 !