C# 在foreach-umbraco中按id获取媒体项目

C# 在foreach-umbraco中按id获取媒体项目,c#,asp.net,razor,media,umbraco,C#,Asp.net,Razor,Media,Umbraco,正如我在标题中所写,我对在foreach中使用媒体有问题 这是我的代码: @foreach (var item in @Model.Children.Where("Visible").OrderBy("UpdateDate")) { @{ var link = new umbraco.cms.businesslogic.media.Media(item.MediaID).Children.FirstOrDefault().getProperty("

正如我在标题中所写,我对在foreach中使用媒体有问题

这是我的代码:

@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>
    }
告诉我这个错误:

Error loading MacroEngine script (file: GalleryList.cshtml);
我该怎么做才能开始工作?也许这是解决这个问题的更好办法


任何帮助都将不胜感激。

我认为这样的东西应该适合您:(我不是100%确定您的代码试图做什么,我假设item.MediaID包含媒体项的id)

@foreach(@Model.Children.Where(“可见”).OrderBy(“更新日期”)中的变量项)
{
var media=Library.MediaById(item.MediaID);
@项目名称
}
如果您需要更多有关如何在Umbraco中使用Razor的信息,请下载


还有很多关于我解决这个问题的重要信息。问题是我在其他代码部分中打开了代码部分

工作代码:

@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>
}
@foreach(@Model.Children.Where(“可见”).OrderBy(“更新日期”)中的变量项)
{
var link=new umbraco.cms.businesslogic.media.media(item.MediaID).Children.FirstOrDefault().getProperty(“umbracoFile”).Value;
@项目名称
}

我编辑了原始帖子。您好,我不确定我是否正确使用了它,但首先我添加了@using umbraco.MacroEngines.Library;但这没有帮助。接下来我更改var media=umbraco.MacroEngines.Library.MediaById(item.MediaID);因为我有
“名称'Liblary'在当前上下文中不存在”
。然后我有一个错误:
名称空间名称'MediaById'的类型在名称空间'umbraco.MacroEnginesLiblary'中不存在。
。你知道如何解决它吗?”我在其他代码部分中打开了代码部分“这是什么意思??
@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>
}
@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>
}