我是Umbraco的新手。我正在创建一个图库(称为客户)。客户有一个徽标,这是一个图像。
如何创建输出客户徽标列表的剃刀宏?
我正在使用cshtml代码,可能是这样的:
@inherits umbraco.MacroEngines.DynamicNodeContext
@foreach (var customer in Content.Customers) {
<img src="@customer.logo.umbracoFile" alt="@customer.Name"/>
}
提前致谢!
答案 0 :(得分:3)
我假设脚本在 Customers 页面上执行,并且包含日志和网址的内容类型称为客户:
@foreach(var customer in Model.Customer)
{
<img src="@customer.Media("logo", "umbracoFile")" alt="@customer.Name"/>
}
Model.Customer
会为您提供当前页面中Customer
个(内容类型)的所有子项列表。
答案 1 :(得分:1)
以下是适用的代码
@inherits umbraco.MacroEngines.DynamicNodeContext
@foreach (var customer in Model.NodeById(1062).Children) {
<img src="@umbraco.IO.IOHelper.ResolveUrl(customer.logo)" alt="@customer.Name"/>
}
答案 2 :(得分:0)
使用动态位置(宏参数),你可以做两件事:
<强> 1。在根文档中设置此项,以便用户可以更改客户滑块位置(如果您愿意):
var RootNode = @Model.NodeById(@Model.AncestorOrSelf(1).HeaderRoot);
其中HeaderRoot是起始文件(root)上属性的名称
<强> 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"/>
}