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

Using folder in Multi media picker

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

我可以获取文件夹,但无法从文件夹中取出图像。正如您在下面的代码中看到的那样。

@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++; }
                }
            }
        }

首先,假设 item 是 IPublishedContent 您可以执行以下操作:

var media = item.Children;

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

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