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请看我的问题的编辑,我有个例外。