在 foreach 中按 id 获取媒体项 - 本布拉科

本文关键字:布拉科 媒体 获取 foreach 中按 id | 更新日期: 2023-09-27 18:31:40

正如我在标题中所写的,我在获取媒体时遇到问题。

这是我的代码:

@foreach (var item in @Model.Children.Where("Visible").OrderBy("UpdateDate"))
    {
        @{
            var link = new umbraco.cms.businesslogic.media.Media(item.MediaID).Children.FirstOrDefault().getProperty("umbracoFile").Value;
        }
        <div class="galleryListItem" style="background-image: url('/imageGen.ashx?image=@link&width=273&height=161');">
            <a href="@item.Url" class="link"></a>
            <div class="contentGalleryList">
                <div class="highlightGalleryList">@item.Name</div>
            </div>
        </div>
    }

还有这一行:

@link = new umbraco.cms.businesslogic.media.Media(item.MediaID).FirstOrDefault().getProperty("umbracoFile").Value;

给我这个错误:

Error loading MacroEngine script (file: GalleryList.cshtml);

我能对开始工作做些什么?也许这是这个问题的更好解决方案?

任何帮助将不胜感激。

在 foreach 中按 id 获取媒体项 - 本布拉科

我认为这样的事情应该适合你:(我不是 100% 确定你的代码试图做什么,我已经假设了这个项目。媒体 ID 包含媒体项的 ID)

@foreach (var item in @Model.Children.Where("Visible").OrderBy("UpdateDate"))
{
    var media = Library.MediaById(item.MediaID);
       <div class="galleryListItem" style="background-image: url('/imageGen.ashx?image=@media.Url&width=273&height=161');">
        <a href="@item.Url" class="link"></a>
        <div class="contentGalleryList">
            <div class="highlightGalleryList">@item.Name</div>
        </div>
    </div>
}

如果您需要有关如何在Umbraco的Razor中做事的更多信息,请下载宝贵的umbraco DynamicNode剃须刀备忘单

our.umbraco.org 维基上也有很多很棒的信息

我解决了。问题是我在其他代码部分中打开了代码部分。

工作代码:

@foreach (var item in @Model.Children.Where("Visible").OrderBy("UpdateDate"))
{
    var link = new umbraco.cms.businesslogic.media.Media(item.MediaID).Children.FirstOrDefault().getProperty("umbracoFile").Value;
    <div class="galleryListItem" style="background-image: url('/imageGen.ashx?image=@link&width=273&height=161');">
        <a href="@item.Url" class="link"></a>
        <div class="contentGalleryList">
            <div class="highlightGalleryList">@item.Name</div>
        </div>
    </div>
}