使用 IShapeTableProvider 覆盖形状

Override a shape using IShapeTableProvider


我想覆盖此路径中的 Container.cshtml 视图:Orchard.Core\Containers(folder)\Views\EditorTemplates\Container.cshtml
我在这条路上的看法:
MyModule\Views\EditorTemplates\MyContainer.cshtml

现在!,我为此实现了 IShapeTableProvider 接口:

public class MyShapeProvider : IShapeTableProvider
    {
        public void Discover(ShapeTableBuilder builder)
        {
            builder.Describe("Container")
                .OnDisplaying(displaying =>
                {
                    displaying.ShapeMetadata.Alternates
                        .Add("Container_MyContainer");
                });
        }
    }

代码是在项目开始时调用的,但是不要运行它!
对不对?

感谢您的帮助!

为了让您的模块优先,您必须依赖要覆盖的模块 module.txt:

Dependencies: Containers

这样您就可以让 Orchard 知道您想要使用该模块的功能,并且您可以覆盖它。