我正在使用 Orchard CMS 构建一个站点并创建我自己的自定义模块。我一直在关注几个教程,到目前为止都很好。
我不明白 .ShapeHelper() 方法是如何工作的,这给我带来了一些麻烦。
以下代码来自我的驱动程序文件,可以正常工作并在前端生成我的视图。
protected override DriverResult Display(SubscribersFormPart part, string displayType, dynamic shapeHelper)
{
// setup model
part.DateStamp = System.DateTime.Now;
return ContentShape("Parts_SubscribersForm", () => shapeHelper.DisplayTemplate(TemplateName: "Parts/SubscribersForm", Model: part, Prefix: Prefix));
}
但是,我在其他教程中看到,而不是DisplayTemplate
使用零件/视图的名称来代替..这是我更愿意使用的,尤其是在使用形状跟踪模块时,看到“DisplayTemplate”会有点令人困惑(如在下图..) 而不是一个更容易识别的名字
我试过简单地将我的方法更改为:
protected override DriverResult Display(SubscribersFormPart part, string displayType, dynamic shapeHelper)
{
// setup model
part.DateStamp = System.DateTime.Now;
return ContentShape("Parts_SubscribersForm", () => shapeHelper.Parts_SubscribersForm(TemplateName: "Parts/SubscribersForm", Model: part, Prefix: Prefix));
}
- 注意“Parts_SubscribersForm()” - 虽然当我这样做时我收到以下错误......
我相信这与我的视图所在的位置有关,尽管我也相信我在 Orchard 需要的正确文件夹中拥有这些视图。这是我的观点所关注的文件夹结构......
谁能指出我正确的方向 - 我可以在 shapeHelper 方法中使用我的零件名称,而不是“DisplayContent”?