Orchard的替代路径

时间:2015-01-12 14:55:27

标签: c# orchardcms

我创建了自己的课程,为相关的集合添加了替代课程:

ShapeMetadata.Alternates.Add("DansForm");

此工作正常,但仅当DansForm根目录中有Views时才会正常工作。

我希望将所有DansForm个替代项保留在目录中。

如何引用路径?


我尝试过的事情:

ShapeMetadata.Alternates.Add("Forms/DansForm");
ShapeMetadata.Alternates.Add("/Forms.DansForm");
ShapeMetadata.Alternates.Add("Forms.DansForm");
ShapeMetadata.Alternates.Add("Forms\\DansForm");
ShapeMetadata.Alternates.Add("Forms__DansForm");
ShapeMetadata.Alternates.Add("Forms_DansForm");

没有找到任何一个。

1 个答案:

答案 0 :(得分:1)

您无法将形状模板组织到目录中。 Orchard有一个硬编码的目录列表,它搜索形状模板:

public IEnumerable<string> SubPaths() {
    return new[] { "Views", "Views/Items", "Views/Parts", "Views/Fields" };
}

我想这是出于性能原因。我想你可以编写一个IShapeTemplateHarvester的额外实现来查找你自己的文件夹中的形状,但看起来有点过分只是为了让它更有条理。我想你只需要忍受一塌糊涂的观点。遗憾!