问题描述
|
我是Umbraco的新手。我正在创建一个图片库(称为客户)。客户有徽标,即图像。
如何创建输出客户徽标列表的剃须刀宏?
我在csHTML代码之后,可能是这样的:
@inherits umbraco.MacroEngines.DynamicNodeContext
@foreach (var customer in Content.Customers) {
<img src=\"@customer.logo.umbracoFile\" alt=\"@customer.Name\"/>
}
提前致谢!
解决方法
我假设脚本在“客户”页面上执行,并且包含日志和URL的内容类型称为“客户”:
@foreach(var customer in Model.Customer)
{
<img src=\"@customer.Media(\"logo\",\"umbracoFile\")\" alt=\"@customer.Name\"/>
}
Model.Customer
将为您列出当前页面中所有Customer
(内容类型)的子级。
,这是有效的代码
@inherits umbraco.MacroEngines.DynamicNodeContext
@foreach (var customer in Model.NodeById(1062).Children) {
<img src=\"@umbraco.IO.IOHelper.ResolveUrl(customer.logo)\" alt=\"@customer.Name\"/>
}
,要使用动态位置(宏参数),您可以做两件事:
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\"/>
}