Orchardcms 如何在位于子文件夹中的Orchard中添加形状替换?

Orchardcms 如何在位于子文件夹中的Orchard中添加形状替换?,orchardcms,shape,alternate,Orchardcms,Shape,Alternate,我有一个IShapeTableProvider,看起来像这样 public class ShapeProvider: Orchard.DisplayManagement.Descriptors.IShapeTableProvider { public void Discover(Orchard.DisplayManagement.Descriptors.ShapeTableBuilder aBuilder) { aBuilder.Describe("Parts_Container

我有一个
IShapeTableProvider
,看起来像这样

public class ShapeProvider: Orchard.DisplayManagement.Descriptors.IShapeTableProvider
{
  public void Discover(Orchard.DisplayManagement.Descriptors.ShapeTableBuilder aBuilder)
  {
    aBuilder.Describe("Parts_Container_Contained").OnDisplaying(c => OnShapeDisplaying(c));
  }

  private void OnShapeDisplaying(Orchard.DisplayManagement.Implementation.ShapeDisplayingContext aDisplayingContext)
  {
    ...
    aDisplayingContext.ShapeMetadata.Alternates.Add("Foo_Bar");
  }
}
根据默认设置,备用形状名称
Foo\u Bar
被映射到
Foo\Bar
,但
Bar
从未被渲染。将改用默认形状

甚至可以在子文件夹中发现形状替换吗

编辑

当我按照
devqon
的请求重命名
Parts.Container.Contained.cshtml
时,我得到了以下异常

异常详细信息:Orchard.Orchard异常:Formtyp 零件/容器/包含nicht gefunden

源错误:

第101行:抛出新的果园异常(T(“未找到形状类型{0}”), shapeMetadata.Type)

源文件:

c:\Project\Web\Intranet.NET\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs 线路:101

堆栈跟踪:

[OrchardException: Formtyp Parts_Container_Contained nicht gefunden]
   Orchard.DisplayManagement.Implementation.DefaultDisplayManager.Execute(DisplayContext context) in c:\Project\Web\Intranet.NET\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs:101
   Orchard.DisplayManagement.Implementation.DisplayHelper.ShapeExecute(Object shape) in c:\Project\Web\Intranet.NET\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:86
   Orchard.DisplayManagement.Implementation.DisplayHelper.Invoke(String name, INamedEnumerable`1 parameters) in c:\Project\Web\Intranet.NET\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:44
   Orchard.DisplayManagement.Implementation.DisplayHelper.TryInvoke(InvokeBinder binder, Object[] args, Object& result) in c:\Project\Web\Intranet.NET\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:29
   CallSite.Target(Closure , CallSite , Object , Object ) +371
   Orchard.Core.Shapes.CoreShapes.ContentZone(Object Display, Object Shape, TextWriter Output) in c:\Project\Web\Intranet.NET\src\Orchard.Web\Core\Shapes\CoreShapes.cs:286

如果你尊重公约,是的。请提供指向您所引用的文档的链接。@BertrandLeRoy请查看我的问题的编辑,我已添加了文档链接。重命名原始的Orchard.Core/Containers/Views/Parts.Container.Contained.cshtml形状,并查看错误消息告诉您在哪里可以找到Foo_栏shape@devqon请看我的问题的编辑,我有个例外。