在多媒体选择器中使用文件夹

时间:2019-06-06 20:52:48

标签: c# umbraco

我希望能够在媒体选择器中选择一个文件夹并在页面上显示该文件夹内的图像。

我能够获取文件夹,但无法从文件夹中获取图像。如下面的代码所示。

@foreach (var item in Model.MediaGallary)
        {
            if (item.DocumentTypeAlias != "Folder")
            {
                <div class="col-lg-3 col-md-4 col-6">
                    <a style="overflow-x:hidden; height:100%" href="@item.Url" data-lightbox="example-set" class="d-block mb-4 h-100">
                        <img class="img-fluid img-thumbnail" src="@item.GetCropUrl("gallaryThumbnail")+@count" />
                        <p>@item.Name</p>
                    </a>
                </div>
                { count++; }
            } else
            {

            }
        }

我正在寻找有关如何从else函数中的文件夹中获取图像的说明。

解决方案

要解决我的问题,我要做的就是添加一个foreach循环以获取子项。

 @foreach (var item in Model.MediaGallary)
        {
            if (item.DocumentTypeAlias != "Folder")
            {
                <div class="col-lg-3 col-md-4 col-6">
                    <a style="overflow-x:hidden; height:100%" href="@item.Url" data-lightbox="example-set" class="d-block mb-4 h-100">
                        <img class="img-fluid img-thumbnail" src="@item.GetCropUrl("gallaryThumbnail")+@count" />
                        <p>@item.Name</p>
                    </a>
                </div>
                { count++; }
            }
            else
            {
                foreach (var mediaItem in item.Children)
                {
                    <div class="col-lg-3 col-md-4 col-6">
                        <a style="overflow-x:hidden; height:100%" href="@mediaItem.Url" data-lightbox="example-set" class="d-block mb-4 h-100">
                            <img class="img-fluid img-thumbnail" src="@mediaItem.GetCropUrl("gallaryThumbnail")+@count" />
                            <p>@mediaItem.Name</p>
                        </a>
                    </div>
                    { count++; }
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

首先,假设item为IPublishedContent,则可以执行以下操作:

var media = item.Children;

您可以进一步尝试一下(假设您使用的是Umbraco 7中由ModelsBuilder生成的模型):

var images = item.Children<Image>();