图像裁剪器在嵌套的foreach中不起作用

时间:2015-05-29 07:06:05

标签: umbraco7

我在Umbraco 7中遇到问题。我正在使用嵌套的多节点树选取器,但GetCropUrl不起作用。裁剪功能还可以,我已经用过了。

@{
    if (CurrentPage.HasValue("artists"))
    {

        var artistList = CurrentPage.artists.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
        var artistCollection = Umbraco.Content(artistList);
        foreach (var artist in artistCollection)
        {
            if (artist.HasValue("coverImages"))
            {
                var coverImagesList = artist.coverImages.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                var coverImagesCollection = Umbraco.Media(coverImagesList);

                foreach (var coverImage in coverImagesCollection.RandomOrder().Take(1).Where("Visible"))
                {
                   <img src="@coverImage.GetCropUrl(305, 195)"/>
                }
            }

        }
    }
}

更新

我更改了代码并开始使用Id。 当我使用它时:

foreach (var coverImage in coverImagesCollection)
   <p>@coverImage.Id</p>
   <img src="@Umbraco.TypedMedia(1105).Url"/>
}

我从@ coverImage.Id取回了图像ID,图像正常工作。

当我使用它时:

foreach (var coverImage in coverImagesCollection)
   <img src="@Umbraco.TypedMedia(coverImage.Id).Url"/>
}

图像仍然很好。

我使用修复ID修剪后。

foreach (var coverImage in coverImagesCollection)
   <img src="@Umbraco.TypedMedia(1105).GetCropUrl(305, 195)"/>
}

工作,但随后:

foreach (var coverImage in coverImagesCollection)
   <img src="@Umbraco.TypedMedia(coverImage.Id).GetCropUrl(305, 195)"/>
}

我收到了一个错误:

'Umbraco.Web.Models.PublishedContentBase'不包含'GetCropUrl'的定义 怎么可能?

1 个答案:

答案 0 :(得分:2)

我从Umbraco论坛得到了答案。他说coverImage.Id是动态的,所以我需要尝试这个,它完美地工作:

foreach (var coverImage in coverImagesCollection)
   <img src="@Umbraco.TypedMedia((int)coverImage.Id).GetCropUrl(305, 195)"/>
}