Razor UMBRACO显示PDF文件

时间:2013-12-03 16:32:26

标签: pdf razor umbraco

我在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>   

}

提前致谢

2 个答案:

答案 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”节点。