2012-04-20 43 views
0

正如我在标题中所写的那样,我在使用foreach时遇到问题。在foreach中以id身份取媒体项目 - umbraco

这是我的代码:

@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('/[email protected]&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

我编辑了原单后。 – 2012-04-20 09:12:18

回答

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('/[email protected]&width=273&height=161');"> 
     <a href="@item.Url" class="link"></a> 
     <div class="contentGalleryList"> 
      <div class="highlightGalleryList">@item.Name</div> 
     </div> 
    </div> 
} 
+0

“我在其他代码段中有开放代码段”是什么意思? – usefulBee 2016-04-14 19:26:47

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('/[email protected]&width=273&height=161');"> 
     <a href="@item.Url" class="link"></a> 
     <div class="contentGalleryList"> 
      <div class="highlightGalleryList">@item.Name</div> 
     </div> 
    </div> 
} 

如果您需要如何在一把umbraco做事剃刀更多信息下载的宝贵umbraco DynamicNode razor cheatsheet

还有很多伟大的信息在our.umbraco.org wiki

+1

嗨,我不是,如果我使用它是正确的,但一开始我加@using umbraco.MacroEngines.Library;但它没有帮助。接下来我更改var media = umbraco.MacroEngines.Library.MediaById(item.MediaID);因为我有'''Liblary'这个名字在当前上下文中不存在,然后我有错误:'命名空间'umbraco.MacroEnginesLiblary''中不存在名称空间名'MediaById'的类型。我该如何解决它? – 2012-04-20 19:05:27