2012-04-20 23 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