2015-07-10 28 views
0

我有以下代碼,它顯示列出的文本和底部的分頁一切正常。但是,當我試圖從子頁面的圖像到列表中它錯誤對我來說。任何想法爲什麼?獲取圖像顯示在分頁列表中的問題

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage 
@{ 
    Layout = "SiteLayout.cshtml"; 
} 

<div role="main" id="main"> 


    <div id="blogPageFeatures"> 
     <!-- loop through all of the child pages (blog posts) and grab data to output as a summary --> 
     @{ 
     var pageSize =3; 
     var page =1;int.TryParse(Request.QueryString["page"],out page); 
     var items =Model.Content.Children().Where(x => x.IsDocumentType("BlogArticle")).OrderByDescending(x => x.CreateDate); 
     var totalPages =(int)Math.Ceiling((double)items.Count()/(double)pageSize); 

     if(page > totalPages) 
     { 
       page = totalPages; 
     } 
     else if(page <1) 
     { 
       page =1; 
     } 
     } 




     @foreach(var item in items.Skip((page -1)* pageSize).Take(pageSize)) 
     { 


         <a href="@item.Url"> 

           <!-- The next image line is where it errors --> 
           <img src="@Umbraco.Media(item.Children.blogArticleImage).Url"> 

            <h2>@item.Name</h2> 
            <p class="blogTileDate">@item.CreateDate.ToString("dd/MM/yy")</p> 





          </a> 

     } 


<div class="clearfix"></div> 


     <!-- Pagination START --> 
     @if(totalPages >1) 
     { 
     <div class="pagination"> 
         <ul> 
           @if(page >1) 
           { 
             <li><a href="[email protected](page-1)">Prev</a></li> 
           } 
           @for(int p =1; p < totalPages +1; p++) 
           { 
             var active =(p == page)?" class=\"active\"":string.Empty; 
             <[email protected](Html.Raw(active))> 
               <a href="[email protected]">@p</a> 
             </li> 
           } 
           @if(page <totalPages) 
           { 
             <li><a href="[email protected](page+1)">Next</a></li> 
           } 
         </ul> 
       </div> 
          } 
     <!-- Pagination END --> 





     <div class="clearfix"></div> 
    </div> 
    <div class="clearfix"></div> 
</div> 
+0

你得到的錯誤是什麼? – cbronson

+0

這是我的朋友: 編譯器錯誤消息:CS1061:'System.Collections.Generic.IEnumerable '沒有包含'blogArticleImage'的定義,也沒有包含接受a的blogArticleImage的擴展方法可以找到類型'System.Collections.Generic.IEnumerable '的第一個參數(缺少使用指令或程序集引用嗎?) –

回答

4

您正在獲取Model.Content.Children,它是IPublishedContent對象的強類型集合。然後,您正在調用item.Children.blogArticlImage,這不會起作用,因爲您試圖獲取項目的子項屬性,而不是項目本身的屬性。您還試圖使用動態語法,這對強類型對象不起作用。試着改變你的形象代碼:

<img src="@Umbraco.TypedMedia(item.GetPropertyValue<int>("blogArticleImage")).Url"> 

這應該做TE伎倆,有一點要注意的是,如果一個項目沒有一個圖像集,或已選擇的圖像已被刪除,但」會拋出一個錯誤。更可靠的方法是這樣的:

var imageSrc = "ADD DEFAULT IMAGE PATH HERE"; 
var media = Umbraco.TypedMedia(item.GetPropertyValue<int>("blogArticleImage")); 
if (media != null && !string.IsNullOrEmpty(media.Url)) 
{ 
    imageSrc = media.Url; 
} 
<mig src="@imageSrc"> 
+0

完美!非常感謝你的幫助。 –

+0

不客氣:) – Tim