我在umbraco 6中有以下内容。
我在媒体部分有一个文件夹结构:
媒体 -files --PDF
PDF文件夹的ID是“2465”。
如何让Umbraco显示PDF文件夹中的所有PDF文件?我已经设置了模板,文档类型和宏。
宏别名称为ViewPDF并指向ViewPDF.cshtml文件。我只需要CSHTML代码。到目前为止我所尝试的并没有奏效。
以下是我尝试过的一个片段:
@inherits umbraco.MacroEngines.DynamicNodeContext
@using umbraco.MacroEngines;
@ { int mediaFolderId = 2465;
DynamicMedia folder = new DynamicMedia(mediaFolderId);
<div class="ViewPDF">
@foreach (dynamic media in folder.Children.Items)
{
if (media.ContentType.Alias == "ViewPDF")
{
<a href="@media.umbracoFile"><img src="css/pdf.png" alt="ViewPDF" /></a>
}
}
</div>
}
提前致谢
答案 0 :(得分:0)
尝试使用folder.Children而不是folder.Children.Items
答案 1 :(得分:0)
我会这样做:
var myContent = Umbraco.TypedContent(id); -> For content nodes.
这将返回IPublishedContent
。因此,您可以这样查询:
var something = myContent.GetProperty("myAlias")
检查here。
在U6中,您还可以使用Content Service
EDIT- Snipet:
@{
var rootNode = Umbraco.TypedMedia(1078);
foreach (var item in rootNode.Children)
{
<p>@item.DocumentTypeAlias - @item.Id - @item.GetPropertyValue("umbracoFile")</p>
}
}
所以,我正在硬编码我正在查询的媒体文件夹上的节点,在你的情况下可能是2465.Altought我不会硬编码...查询它的类型,如果它是自定义的,得到那个。
这是snipet的输出:
档案 - 1079 - /media/1001/1452119_10152065755207915_1678786930_n.jpg
文件 - 1080 - /media/1002/gumkfjn.png
图片 - 1081 - /media/1003/tumblr_madtynbo2m1r54uxao1_400.jpg
这是我在硬编码节点上面的3个孩子,我正在打印他们的类型别名,id和umbraco文件路径属性。您可以对子项进行排序,或按特定文档类型查询它们。
例如:
rootNode.Children.Where(x => x.DocumentTypeAlias.Equals("File"))
.OrderByDescending(x => x.CreateDate))
这只会返回“CreateDate”排序的“File”节点。