【问题标题】:Why Orchard doesn't have model view controller?为什么 Orchard 没有模型视图控制器?
【发布时间】:2017-07-12 04:05:04
【问题描述】:

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

我试图在果园文件中了解这个案例,但我没有找到任何关于它的描述。

【问题讨论】:

  • Orhcard 使用modelviewcontroller,但它会根据组合动态构建模型和视图
  • 你能给我一些关于作曲或我必须知道的更多信息或资源吗? @devqon
  • 我建议阅读一些documentation of its architecture

标签: asp.net-mvc orchardcms modular-design plugin-architecture clean-architecture


【解决方案1】:

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

在我看来,要理解的关键是,请求的核心是由给定的控制器处理,该控制器构建一个模型,并返回一个使用该模型的视图。 Orchard 对此的补充是它如何构建特定模型,以及它如何选择视图来显示该模型。

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

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

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

【讨论】:

  • 解释得很漂亮! +1
猜你喜欢
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2023-03-03
  • 2011-06-09
相关资源
最近更新 更多