2011-05-25 74 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"/> 
}