2012-07-27 131 views
3

我試圖將現有的ASP.NET MVC 3網站遷移到Orchard,因此我可以繼續構建網站,同時利用Orchard提供的擴展功能。我試圖將整個現有網站封裝到一個Orchard模塊中,這樣我就可以保持現有的所有功能,並繼續添加功能,或根據需要將舊功能移植到新模式中。Orchard頁面嵌套佈局

我直接複製到Orchard的主要問題是,我利用了MVC 3中的佈局層次結構來爲相關頁面指定相同的父佈局,這又可能有其自己的父佈局, 等等。

當我在我現有的視圖中複製時,出現錯誤,佈局是自定義Orchard WebPageView上的只讀屬性,但是當我將基本視圖類型更改回標準MVC 3基本類型時,路徑會由於模塊文件夾結構不匹配我的意見。

是否可以指定嵌套佈局,而不支持在Orchard中運行的網站,或者是否存在我缺少的內置解決方法?

謝謝! -J

回答

2

Orchard的佈局系統早於MVC,工作方式稍有不同。恐怕你不得不重構一些東西。 Orchard中的視圖依賴於形狀的概念,這是一個類似於視圖模型的動態對象。當呈現形狀的時候,系統會尋找最合適的模板將其轉換爲html。大多數控制器操作都返回一個形狀結果,該結果將作爲必須在佈局形狀中定義的內容區域的子元素呈現。可以通過指定替代方式來更改佈局形狀渲染(請參閱http://weblogs.asp.net/bleroy/archive/2010/12/14/switching-the-layout-in-orchard-cms.aspx)。

所以最終Orchard並沒有使用Razor/ASP.NET Web Pages/MVC3推動的那種倒轉的主頁式佈局系統。相反,您使用形狀及其交替來獲得相似的結果,但視角不同於將形狀添加到嵌套容器中,而不是包含的對象指定它們插入的內容。

+0

謝謝,我將開始使用您提供的信息Google搜索。你有沒有推薦理解如何在Orchard中編碼形狀和佈局的資源? – jeremyalan 2012-07-30 14:37:05

+0

當然:http://docs.orchardproject.net/Documentation/Accessing-and-rendering-shapes和http://docs.orchardproject.net/Documentation/Anatomy-of-a-theme或http://docs.orchardproject .NET /文檔/寫作-A-新主題 – 2012-07-30 16:55:16