2012-12-28 38 views
1

我是新來的果園,並觀看了Pluralsight「果園基礎」和「高級果園」教程。它是一個很棒的平臺,但是我很難將我的頭圍繞在幾件事情上。果園替代形狀模板Not Displaying Values

我想在主頁上創建一個博客展示橫幅,只在網站上轉動博客帖子。我將HTML切片並在HTML模板上運行。旗幟看起來是這樣的:

http://arerra.com/news-slideshow.jpg

到目前爲止,我已經做了以下內容:

  1. 我已經創建了一個名爲「文章」博客,並放置在一個帖子在那裏進行測試。

  2. 增加了一個名爲我在那裏放置窗口小部件

  3. 我創建了一個自定義佈局稱爲「佈局-URL-HomePage.cshtml」主頁「最近的博客文章」「ArticleList」圖層在我的主題。

  4. 在我的主題「意見」的文件夾,我創建了一個名爲「Widget.Wrapper.cshtml」文件只@Display(Model.Child)在它從部件全球取出<article><header/><footer /><article>標籤。

  5. 在「視圖>零件> Blogs.RecentBlogPosts.cshtml」中添加了一個文件來控制我的形狀佈局。代碼如下:

    @using Orchard.ContentManagement; 
    @{ 
        IEnumerable<object> blogPosts = Model.ContentItems.ContentItems; 
    } 
    
    @if (blogPosts != null) { 
    <div class="container news-slider"> 
        <ul class="slide-images"> 
         @foreach (dynamic post in blogPosts) { 
          string title = post.Title; 
          ContentItem item = post.ContentItem; 
    
          <img src="/Themes/MountainWestHoops/Content/img/placeholder-700x380.jpg" alt="@title" class="active" /> 
         } 
        </ul> 
    
        @foreach (dynamic post in blogPosts) { 
         string title = post.Title; 
         string body = post.Body; 
         ContentItem item = post.ContentItem; 
    
         <div class="featured-story threeD active"> 
          <h1>@title</h1> 
          <p>@body @Html.ItemDisplayLink("READ MORE", item)</p> 
         </div> 
        } 
    
        <aside> 
         <ul class="tabs"> 
          @foreach (dynamic post in blogPosts) { 
           string title = post.Title; 
           string url = post.Url; 
           ContentItem item = post.ContentItem; 
    
           <li><a href="@url"><h3>@title</h3></a></li> 
          } 
         </ul> 
    
         <div class="ad-three-day-trial"> 
          <a href=""><img src="/Themes/Content/img/placeholder-260x190.gif" /></a> 
         </div> 
        </aside> 
    </div> 
    }  
    
  6. 我的HTML被正確渲染,但沒有我所指定的值都顯示出來。

  7. 我正在使用「Shape Tracer」模塊來查看正在使用的模板。有趣的是,@ Html.ItemDisplayLink(「READ MORE」,item)呈現文章的URL,如果我用字符串標題替換「READ MORE」,則標題呈現正確。

我在做什麼錯誤導致字符串不顯示?我錯過了一個更大的觀點並誤解了基本面?該教程似乎說,你可以簡單地移動部件,但在這種情況下,我需要有非常特定的標記才能使用此滑塊。

回答

1

好像你的來源是http://weblogs.asp.net/bleroy/archive/2011/03/27/taking-over-list-rendering-in-orchard.aspx

這是一個比較舊的職位,從那時起標題的處理方式發生了變化。

DisplayLink的工作原理是因爲這裏唯一正確的屬性是post.ContentItem,這就是API所要做的。另一方面,post.Titlepost.Body很可能爲空,這就是爲什麼你什麼都看不到。要訪問標題,您可以使用post.ContentItem.TitlePart.Title並獲取主體,post.ContentItem.BodyPart.Text

+0

謝謝伯特蘭!是的,那實際上就是我從中拿出來的文章。現在我看看Shape Tracer,這更有意義。 – Javier