Dar*_*ght 2 asp.net-mvc orchardcms orchardcms-1.6
我正在使用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));
}
Run Code Online (Sandbox Code Playgroud)
但是,我在其他教程中已经看到,而不是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));
}
Run Code Online (Sandbox Code Playgroud)

我相信它与我的观点位于何处,但我也相信我在Orchard所需的正确文件夹中有这些.这是我的文件夹结构,我的观点是...

任何人都可以指出我正确的方向 - 我可以在shapeHelper方法中使用我的零件名称,而不是"DisplayContent"?
将您的显示模板直接放在Views文件夹(/Views/Parts.SubscribersForm.cshtml)内,而不是在里面DisplayTemplates.按照惯例,Orchard Views仅在查找形状模板时扫描文件夹.EditorTemplates另一方面,该子文件夹包含部分编辑器的模板,即.从驱动程序Editor方法返回的那些形状
什么是动态的shapeHelper东西?简而言之 - 它是一个造型工厂.当你打电话的时候.shapeHelper.SomeShape(Foo: 1, Bar: "baz"),它返回一个与SomeShape.cshtml模板对应的形状对象,其动态模型包含属性Foo和Bar.该模板必须位于Views模块或主题的文件夹中的某个位置.这或多或少都是魔术.
如果你想更多地了解形状 - 这是一个很好的起点:http://docs.orchardproject.net/Documentation/Accessing-and-rendering-shapes.
| 归档时间: |
|
| 查看次数: |
3078 次 |
| 最近记录: |