我在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'的定义 怎么可能?
答案 0 :(得分:2)
我从Umbraco论坛得到了答案。他说coverImage.Id是动态的,所以我需要尝试这个,它完美地工作:
foreach (var coverImage in coverImagesCollection)
<img src="@Umbraco.TypedMedia((int)coverImage.Id).GetCropUrl(305, 195)"/>
}