Обрезка изображения не работает во вложенном foreach

У меня проблема в 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, и изображение работает.

Когда я использую это:

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

Изображение по-прежнему хорошее.

После того, как я обрезаю с помощью fix 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» Как это возможно?


person levipadre    schedule 29.05.2015    source источник
comment
Как это не работает? Есть сообщение об ошибке или просто не обрезается изображение?   -  person Jannik Anker    schedule 29.05.2015
comment
Нет сообщения об ошибке, просто пустое поле. С .Url я вижу картинку.   -  person levipadre    schedule 29.05.2015
comment
Пустое поле? Вы уверены, что coverImage вообще найден?   -  person Jannik Anker    schedule 29.05.2015
comment
Да, я уверен. Когда я перехожу на @coverImage.Url, я получаю изображение   -  person levipadre    schedule 29.05.2015
comment
Извините, вы уже сказали это. Я в растерянности тогда.   -  person Jannik Anker    schedule 29.05.2015


Ответы (1)


У меня есть ответ с форума Umbraco. Он сказал, что coverImage.Id является динамическим, поэтому мне нужно попробовать это, и это сработало отлично:

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