2011-05-25 67 views
2

我是Umbraco的新手。我正在創建一個圖片庫(稱爲客戶)。客戶有一個標誌,這是一個圖像。Umbraco,剃刀和圖片庫

My Umbraco Content

如何創建一個剃刀宏輸出客戶標識的名單?

我是CSHTML代碼之後,大概是這樣的:

@inherits umbraco.MacroEngines.DynamicNodeContext 
@foreach (var customer in Content.Customers) { 
    <img src="@customer.logo.umbracoFile" alt="@customer.Name"/> 
} 

提前感謝!

回答

1

下面是使用動態位置(宏參數)的作品

@inherits umbraco.MacroEngines.DynamicNodeContext 
@foreach (var customer in Model.NodeById(1062).Children) { 
    <img src="@umbraco.IO.IOHelper.ResolveUrl(customer.logo)" alt="@customer.Name"/> 
} 
+3

使用節點ID通常不是一個好主意 - 如果重新創建節點,該ID可能會有所不同。您可以使用'Model.Customer'來獲取所有內容類型爲「Customer」的孩子(我更新了我的答案) – marapet 2011-05-25 06:33:46

+1

您可以使用宏參數選項來選擇節點 – SAK 2011-05-31 10:15:28

+0

什麼是宏參數選項和/或您如何使用它? – Aximili 2011-06-08 01:47:55

3

我假設腳本執行客戶頁面上,並且包含日誌和URL的內容類型被稱爲客戶

@foreach(var customer in Model.Customer) 
{ 
    <img src="@customer.Media("logo", "umbracoFile")" alt="@customer.Name"/> 
} 

Model.Customer會給你的所有兒童的列表當前頁面是Customer s(內容類型)。

+0

我部分解決了這個問題。您需要用Model.NodeById(1062).Children替換Content.Customers。我可以得到URL,它是customer.logo,它輸出類似〜/ media/105/ozmosis.jpg,但是Url.Content無法解決tilde – Aximili 2011-05-25 05:55:41

+0

解決它謝謝反正marapet! – Aximili 2011-05-25 05:59:50

+0

哦對不起,我只看代碼來獲取媒體文件的網址,我會更新... – marapet 2011-05-25 06:21:57

0

的代碼,你可以做兩件事情:

設置1.這是你的根文件中,以便用戶可以更改客戶滑塊位置(如果你會喜歡的):

var RootNode = @Model.NodeById(@Model.AncestorOrSelf(1).HeaderRoot); 

凡HeaderRoot是你的出發網絡連接的屬性的名稱樂(根)

2.在你的剃鬚刀腳本中使用的參數

var rootNode = @Parameter.RootNode; 

,並使用它是這樣的:

@Model.NodeById(rootNode).Children(); 

所以在你的代碼,它會是這個樣子(未測試):

@inherits umbraco.MacroEngines.DynamicNodeContext 

@{ var rootNode = @Parameter.RootNode;} 
@foreach (var customer in Model.NodeById(rootNode).Children()) { 
    <img src="@umbraco.IO.IOHelper.ResolveUrl(customer.logo)" alt="@customer.Name"/> 
}