正如我在标题中所写,我在foreach中使用Media有问题。
这是我的代码:
@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);
我可以做些什么来开始工作?也许这是一个更好的解决这个问题的方法?
任何帮助都将不胜感激。
答案 0 :(得分:2)
我觉得这样的事情对你有用:(我不是100%肯定你的代码试图做什么,我假设item.MediaID包含媒体项的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 razor cheatsheet
上还有很多很棒的信息答案 1 :(得分:0)
我解决了。问题是我在其他代码部分中有开放代码部分。
工作代码:
@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>
}