我创建了自己的课程,为相关的集合添加了替代课程:
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");
没有找到任何一个。
答案 0 :(得分:1)
您无法将形状模板组织到目录中。 Orchard有一个硬编码的目录列表,它搜索形状模板:
public IEnumerable<string> SubPaths() {
return new[] { "Views", "Views/Items", "Views/Parts", "Views/Fields" };
}
我想这是出于性能原因。我想你可以编写一个IShapeTemplateHarvester的额外实现来查找你自己的文件夹中的形状,但看起来有点过分只是为了让它更有条理。我想你只需要忍受一塌糊涂的观点。遗憾!