2012-03-16 30 views
2

我正試圖在Orchard重現this layout。到目前爲止,我通過使用我的博客帖子詳細信息備份(Content-BlogPost.Detail.cshtml)獲得了大部分內容。問題是,我已經創建的佈局看起來是這樣的:如何從Orchard替代品中渲染區域或小部件?

enter image description here

我的第一個問題是,這是否佈局作出任何意義嗎?有沒有更好的方法來實現這個結果(也就是讓檔案顯示與內容一致)?

其次,有沒有辦法從我的備用內部渲染區域(或小部件)?我嘗試了@Display(Model.Archives),其中Archives是我的區域的名稱,但顯然博客詳細信息模型未定義存檔屬性。我也考慮手動呼叫到博客檔案形狀與類似

@Display(New.Parts_Blogs_BlogArchives(new { Blog: blog, Archives: ???}) 

但我不知道如何填充第二個參數。

在烏節路上發生這種佈局的正確方法是什麼?

回答

7

此佈局的主要問題是存檔區域被放置在博客文章的標記內。這使得渲染更難,但並非不可能。

解決方法是將整個佈局區域渲染到備用區域內,就像您所說的那樣。您可以像這樣的每個形狀顯示主要的頂層佈局區域:@Display(Layout.Archives)Layout是一個屬性,可讓您訪問主佈局形狀。

我會做這樣的:

  1. 在Theme.txt清單文件(區部分),這將成爲博客存檔小部件的佔位符添加一個名爲區檔案館。確保你會而不是渲染它在Layout.cshtml文件。此區域嚴格用於博客發佈目的(您也可以給它一個不同的名稱來注意這一點)。
  2. 爲您的博客文章創建一個備用形狀,並在適當的位置撥打Display(Layout.Archives)。這將使整個區域的博客帖子標記內。
  3. 將博客歸檔小部件放入歸檔區域。

現在,每次任何博客文章被渲染時,它也會渲染歸檔小部件。

+0

太棒了。我在哪裏可以瞭解有關烏節的所有內容?我走的越深,學得越多。 :) – Ragesh 2012-03-16 14:20:52

+1

文檔和實踐經驗是最好的方式:) – 2012-03-16 19:00:19

+3

偷看現有模塊的代碼,做有趣的事情。 – 2012-03-16 19:05:16

相關問題