为什么 Orchard 没有模型视图控制器?

Why Orchard doesn't have model view controller?

我在果园工作。写这样一个项目是我的梦想!..所以我开始了一个回合的研究。我对 orchard 感兴趣的是,虽然 orchard 是 mvc 项目,但为什么它没有任何 modelviewcontroller 在他的 web 层解决方案中?它使用 CleanArchitecture 还是像 this 这样的特定架构?

我试图在 Orchards 文档中了解此案例,但我没有找到任何相关描述。

实际上,Orchard 是一个基于 MVC 的项目,它本质上确实有 modelsviewscontrollers。但它提供的远不止于此。

在我看来,要理解的关键是,在最核心的地方,请求是由一个给定的控制器处理的,它构建了一个模型,returns 一个使用这个模型的视图。 Orchard 添加的内容是它如何构建特定模型,以及它如何 select 显示该模型的视图。

考虑通过导航到具有别名“/about”的内容项来请求内容项。

ASP.NET 路由将启动,它已配置为匹配所有内容项的别名。将找到“/about”的路由,它由 Contents 模块的 ItemController 处理(Orchard 中的模块在概念上与 MVC 区域相同)。 ItemController 将为请求的内容项构建动态模型,称为 shape。形状是 Shape class 的一个实例,其中包含有关形状的元数据,例如形状的名称。基于此信息,Orchard 利用视图引擎 select 适当的 Razor view 来渲染形状对象。

所以你看,所有基本的 MVC 东西都发挥了作用。 Orchard 只是在其之上添加了一个强大的基础设施,以提供一个先进而灵活的渲染系统,比如将内容项转换为形状,然后通过视图引擎将其转换为 HTML。但归根结底,它主要是关于控制器创建视图使用的模型。