Orchard 中的备用路径

Alternate path in Orchard

我创建了自己的 class,它向相关集合添加了替代品:

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");

没有找到任何一个。

您不能将形状模板组织到目录中。 Orchard 有一个用于搜索形状模板的硬编码目录列表:

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

我想这是出于性能原因。我想您可以编写一个额外的 IShapeTemplateHarvester 实现来在您自己的文件夹中查找形状,但似乎只是为了让它更有条理一点。我认为您将不得不忍受混乱的观点。抱歉!