Orchardcms MVC视图上的可编辑内容

Orchardcms MVC视图上的可编辑内容,orchardcms,orchard-modules,Orchardcms,Orchard Modules,我正在制作一个果园模块,用于销售各种电子书。在购买之前,用户可以查看显示产品样本的页面。购买后,不再需要示例页面,用户可以访问完整的产品 我想设置这样的设置,如果付费客户尝试访问示例页面,他们将被重定向到他们的完整产品,如果非客户尝试转到完整产品页面,他们将被重定向到示例。我还希望我的页面内容可以通过仪表板进行编辑 我目前的执行情况: 控制器根据是否已购买来处理有条件路由/重定向 我的每个页面url的层规则,每个包含一个html小部件以提供页面内容 这似乎是可行的,但我想知道我还有什么其他选

我正在制作一个果园模块,用于销售各种电子书。在购买之前,用户可以查看显示产品样本的页面。购买后,不再需要示例页面,用户可以访问完整的产品

我想设置这样的设置,如果付费客户尝试访问示例页面,他们将被重定向到他们的完整产品,如果非客户尝试转到完整产品页面,他们将被重定向到示例。我还希望我的页面内容可以通过仪表板进行编辑

我目前的执行情况:

  • 控制器根据是否已购买来处理有条件路由/重定向
  • 我的每个页面url的层规则,每个包含一个html小部件以提供页面内容

这似乎是可行的,但我想知道我还有什么其他选择来实现这一点。

你可能使事情变得比需要的更复杂


使用小部件是不必要的。最好构建一个常规的内容类型并显示它。您可以通过一个特殊的控制器来检查购买情况,但即使这样也没有必要。相反,您可以创建一个在其驱动程序显示方法中包含购买验证逻辑的零件。这样,您甚至可以将完全相同的逻辑应用于任何内容类型。

如果我将我的逻辑包含在部件驱动程序中,我可以执行页面重定向,还是说只有我的显示形状会更改,但路径相同?当然:编写DriverResult的实现,从其apply方法执行重定向,并从驱动程序返回一个实例。谢谢Bertrand。您对我最初问题的回答帮助我找到了一种使用part驱动程序而无需重定向的方法。