2015-09-20 67 views
0


我要覆蓋在這條道路Container.cshtml圖中的形狀:Orchard.Core\Containers(folder)\Views\EditorTemplates\Container.cshtml
我在這條道路的觀點:
MyModule\\Views\EditorTemplates\MyContainer.cshtml

現在!我實現IShapeTableProvider接口用於此目的:覆蓋使用IShapeTableProvider

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

該代碼是調用項目的凝視時間,但不工作!
不正確或不正確?

感謝您的任何幫助!

+0

爲什麼要爲此實現shapetableprovider?如果你只是在Views/EditorTemplates中放置一個Container.cshtml,它將接管 – devqon

+0

而你的視圖被稱爲MyContainer.cshtml,但它會搜索一個Container.MyContainer.cshtml – devqon

+0

@devqon:我不想改變這個視圖核心模塊。當我在模塊中創建相同的名稱視圖(Container.cshtml)時,orchard在Core中調用容器視圖。調用的優先級是核心模塊 –

回答

1

爲了讓你的模塊佔先,你必須打好模塊的依賴關係在你的module.txt覆蓋:

Dependencies: Containers 

這樣,你讓果園知道你要使用的模塊的功能,你可以覆蓋它。