1

我是 Orchard 的新手,看过 Pluralsight“Orchard Fundamentals”和“Advanced Orchard”教程。它是一个很棒的平台,但我很难理解一些事情。

我想在主页上创建一个博客展示横幅,仅用于轮换网站上的博客文章。我将 HTML 切片并在 HTML 模板上运行。横幅如下所示:

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

到目前为止,我已经完成了以下工作:

  1. 我创建了一个名为“文章”的博客,并在其中放置了一个帖子进行测试。

  2. 添加了一个名为“ArticleList”的图层,其中我为“最近的博客文章”放置了一个小部件

  3. 我在我的主题中为主页创建了一个名为“Layout-Url-HomePage.cshtml”的自定义布局。

  4. 在我的主题“视图”文件夹中,我创建了一个名为“Widget.Wrapper.cshtml”的文件,其中仅@Display(Model.Child)用于删除<article><header/><footer /><article>标签。

  5. 在“Views > Parts > 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”替换为字符串标题,标题会正确呈现。

我在这里做错了什么导致字符串不显示?我是否遗漏了一个更大的观点并误解了基本面?教程似乎说你可以简单地移动部件,但在这种情况下,我需要有非常具体的标记才能让这个滑块工作。

4

1 回答 1

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.

于 2012-12-28T02:42:16.630 回答