2

我正在尝试了解 HMVC 以及如何或是否应该在我当前的 MVC 应用程序中考虑它。

关于 [this][1] question about MVC architecture 的引用,

有时,Hierarchical-Model-View-Controller (HMVC) 模式(又名 Presentation-Abstraction-Control)是处理更复杂的界面和应用程序需求的好选择。

“然而,当涉及到 GUI 元素(小部件)的控制时,传统的 MVC 范围不足。MVC 不处理数据管理、事件管理和应用程序流的复杂性。作为 MVC 三元组的改编,HMVC - - Hierarchical-Model-View-Controller——范式旨在解决上述一些问题。”

Jason Cai、Ranjit Kapila 和 Gaurav Pal(2000 年 7 月)。“HMVC:用于开发强大客户层的分层模式”。Java世界杂志。

[1]: https ://stackoverflow.com/questions/113602/when-to-use-mvc-architecture

我一直在尝试理解 PAC/HMVC,上面的文字引起了共鸣。HMVC 的三元组抽象可以应用于页面上的“小部件”,或者在使用 ASP.Net 视图引擎(相对于 Razor 视图引擎)时如何转换为页面上的“控件”。

这会是 HMVC 模式的准确应用吗?

如果是这样,我不确定这将如何实施。我确实看到了这样做的好处,因为如果主页加载正常,并且某些用户控件/小部件出错,页面仍然可以加载。

那么主页面控制器会调用它的小部件控制器吗?从主视图来看,我猜测模型继承会发挥作用,就像您在简单的 MVC 页面视图中使用模型的对象一样。

这在代码中会是什么样子 - 从顶层视图中调用两个或三个三元组中的模型数据?

4

2 回答 2

1

首先,你提出了一些有趣的观点。其次,我假设您熟悉 ASP.NET MVC 框架。

在这里大声想一下,有一个名为 Partial() 的 HtmlHelper,它接受一个控制器和动作并返回结果。因此,如果您编写一个返回 PartialView 的 Action(可以用作小部件 - 每页可以有多个),这可能是上述架构的合理实现吗?

谢谢,

马特

于 2011-10-07T10:18:32.060 回答
0

在阅读了 HMVC 的不同资源后,我相信 ASP.NET MVC 自 v2.0 以来确实以Areas的形式拥有 HMVC 。

将它与T4MVC 结合并调用 Action.PartialX() 方法,您就拥有了下一个流行词HMVC

于 2011-12-27T11:08:14.743 回答