2012-04-20 9 views
0

タイトルに書いたとおり、私はforeachでメディアを取るのに問題があります。foreach - umbracoでidでメディアアイテムを取る

これは私のコードです:

@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

。 –

答えて

0

に大きなたくさんの情報もあります。問題は、他のコードセクションにオープンコードセクションがあることでした。

の作業コード:私はorginalのポストを編集した

@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

2

私はこのような何かがあなたのために働くべきだと思う:

@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> 
} 
(私はあなたがコードがやろうとしているものは100%わからないんだけど、私はitem.MediaIDは、メディア項目のIDが含まれていると仮定しました)

あなたは非常に貴重なumbraco DynamicNode razor cheatsheet

をダウンロードUmbracoでカミソリで物事を行う方法の詳細情報が必要な場合、私はそれを解決our.umbraco.org wiki

+1

こんにちは、私はそれを正しく使用していませんが、最初に@using umbraco.MacroEngines.Libraryを追加します。それは助けにはならない。次に、var media = umbraco.MacroEngines.Library.MediaById(item.MediaID);を変更します。現在のコンテキストに '' Liblary ''という名前が存在しないため、エラーが発生します: '名前空間 'MediaById'の型が名前空間 'umbraco.MacroEnginesLiblary''に存在しません。どうすれば解決できますか? –

関連する問題