Orchard CMS和控制器与驱动程序

时间:2012-08-06 15:17:08

标签: asp.net-mvc orchardcms

对于提出这么多问题我感到有点惭愧,但我真的很想学。 在Sipke's blog中创建了一个网上商店。在尝试做类似的事情时,有一个特定的问题让我难以理解。

让我说出基本要求:

  • 用户注册表格和登录等。这篇文章由博客涵盖,效果很好。
  • 创建产品零件等。这个被覆盖,没有问题。
  • 通过填写订单并付款来订购。见下来
  • 订购页面可由客户维护。见下。
  • 查看您自己的订单及其状态。见下来
  • 维护后端系统的客户和订单。博客会介绍这个,我还需要做一些工作。

关于创建订单和查看订单的项目。我已经遵循创建记录和使用标准MVC控制器的方法。但后来我遇到了问题:

  1. 订单菜单页面。我必须在安装模块后手动完成。
  2. 订单页面本身。我必须创建包括标题等的视图。但我可以想象一个客户想要在另一个菜单上使用不同标题的订单页面。甚至可以在订购页面中添加一些自己的内容。这是我无法通过使用标准MVC方法实现的。所以也许我在这里使用错误的方法。所以我在考虑使用contentparts创建订单并显示它们并使用驱动程序和处理程序。但是在我走这条路并重构我要知道的一切之前,如果这是正确的方法。一个缺点可能是,一旦模块遵循该路线,就可以不那么容易地重复使用具有其他cms能够托管MVC3模块的客户。
  3. 那么何时使用驱动程序,处理程序和内容部件以及何时使用标准控制器和视图。

1 个答案:

答案 0 :(得分:4)

如果要为内容项创建功能,则应使用驱动程序和部件(如果需要,使用处理程序)。例如。如果要显示包含所有产品的自定义媒体,您可以创建一个部分(连同其驱动程序等)来处理它。阅读docs on Parts

如果功能与内容项无关,则最有可能要使用标准MVC工具箱,这很好。看一下内置模块他们是如何做到的。例如。 Blog模块使用控制器和视图来显示管理UI,但有部分功能可以增强博客内容类型的功能。

使事情变得更复杂you can employ ad-hoc content items以构建您通常使用简单视图执行的页面,但这是一个高级主题: - )。