- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Orchard CMS 构建网站并创建我自己的自定义模块。我一直在学习一些教程,目前为止还不错。
我不明白 .ShapeHelper() 方法是如何工作的,这给我带来了一些麻烦。
以下代码来 self 的驱动程序文件,运行良好并在前端生成我的 View 。
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));
}
但是,我在其他教程中看到,使用零件/ View 的名称而不是 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));
}
我相信这与我的 View 所在的位置有关,但我也相信我在 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 .
关于asp.net-mvc - 在 Orchard CMS 中使用 ShapeHelper 生成形状 - 找不到类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059888/
我正在使用 Orchard CMS 构建网站并创建我自己的自定义模块。我一直在学习一些教程,目前为止还不错。 我不明白 .ShapeHelper() 方法是如何工作的,这给我带来了一些麻烦。 以下代码
我是一名优秀的程序员,十分优秀!