Asp.net mvc 3 如何在Orchard CMS中呈现博客文章的各个部分(如标签)?

Asp.net mvc 3 如何在Orchard CMS中呈现博客文章的各个部分(如标签)?,asp.net-mvc-3,orchardcms,Asp.net Mvc 3,Orchardcms,我正在尝试在此布局中呈现博客文章列表: [first post - special summary] [second post][third post][fourth post] [pager] 我试图自己呈现第一篇文章,然后循环其余的项目,使用博客文章摘要模板呈现它们 这里有一些问题: 这是解决问题的好办法吗 我试图实现的布局或 我应该开始考虑创建 模块 我应该创建一个摘要吗 我特别的第一篇文章的模板 渲染和我将如何进行 那个 如果我继续往下走 路径如何渲染标记之类的零件 邮寄日期呢 到目前

我正在尝试在此布局中呈现博客文章列表:

[first post - special summary]
[second post][third post][fourth post]
[pager]
我试图自己呈现第一篇文章,然后循环其余的项目,使用博客文章摘要模板呈现它们

这里有一些问题:

  • 这是解决问题的好办法吗 我试图实现的布局或 我应该开始考虑创建 模块
  • 我应该创建一个摘要吗 我特别的第一篇文章的模板 渲染和我将如何进行 那个
  • 如果我继续往下走 路径如何渲染标记之类的零件 邮寄日期呢
  • 到目前为止,我的主题是:Parts.Blogs.BlogPost.List url blog.cshtml

    @using Orchard.Blogs.Extensions;
    @using Orchard.Blogs.Models;
    @using Orchard.ContentManagement;
    @using Orchard.Utility.Extensions;
    @{
        IEnumerable<dynamic> blogPosts = Model.ContentItems;
        Model.ContentItems.Classes.Add("content-items");
        Model.ContentItems.Classes.Add("blog-posts");
    
        var firstPost = blogPosts.FirstOrDefault();
        //BlogPart blog = (BlogPart)firstPost.Get(typeof(BlogPart));
    
    }
    <h1>@firstPost.Title</h1>
    by <span>@firstPost.ContentItem.CommonPart.Owner.NormalizedUserName</span>
    
    @* How do i render tags using the tags part template? *@
    
    @Display(firstPost.Tags) 
    @Display(firstPost.Parts_Tags_ShowTags)
    @Display(firstPost.TagsPart) 
    @Display(firstPost.ContentItem.TagsPart)
    @Display(firstPost.ContentItem.TagsPart.ContentItem)
    
    @* none of the above work *@
    
    <hr />
    <ul class="content-items">
        @foreach (var post in blogPosts.Skip(1))
        {
            <li class="content-item-summary">
                @Display(post)
            </li>
        }
    </ul>
    
    但我能做到

    @Display(blogPosts)
    
    哦,嗨。试试这个:

    @using Orchard.Blogs.Extensions;
    @using Orchard.Blogs.Models;
    @using Orchard.ContentManagement;
    @using Orchard.Utility.Extensions;
    @{
        IEnumerable<dynamic> blogPosts = Model.ContentItems;
        Model.ContentItems.Classes.Add("content-items");
        Model.ContentItems.Classes.Add("blog-posts");
    
        var firstPost = blogPosts.FirstOrDefault();
        var otherPosts = blogPosts.Skip(1).ToList();
    }
    <h1>@firstPost.Title</h1>
    by <span>@firstPost.ContentItem.CommonPart.Owner.NormalizedUserName</span>
    
    @Display(New.MyTagShape(Tags: firstPost.ContentItem.TagsPart.CurrentTags))
    
    <hr />
    @Display(New.List().AddRange(otherPosts))
    
    @使用Orchard.Blogs.Extensions;
    @使用Orchard.Blogs.Models;
    @采用果园管理;
    @使用Orchard.Utility.Extensions;
    @{
    IEnumerable blogPosts=Model.ContentItems;
    Model.ContentItems.Classes.Add(“内容项”);
    Model.ContentItems.Classes.Add(“博客帖子”);
    var firstPost=blogPosts.FirstOrDefault();
    var otherPosts=blogPosts.Skip(1.ToList();
    }
    @第一篇文章,标题
    发件人@firstPost.ContentItem.CommonPart.Owner.NormalizedUserName
    @显示(New.MyTagShape(标记:firstPost.ContentItem.TagsPart.CurrentTags))
    
    @显示(新建.List().AddRange(其他帖子))
    这是MyTagShape.cshtml的代码:

    Here are your tags:
    <ul>
    @foreach (var tag in Model.Tags) {
        <li>@tag.TagName</li>
    }
    </ul>
    
    以下是您的标签:
    
      @foreach(Model.Tags中的var标记){
    • @标记名
    • }
    在我的机器上工作。 但正如我在论坛上所说的,您可能希望自定义摘要模板,而不是整个列表


    编辑:下面是如何为第一项创建不同的模板:

    哦,这些类现在没有任何用途,您可能希望将它们移动到新的列表形状,而我忽略了这样做。
    Here are your tags:
    <ul>
    @foreach (var tag in Model.Tags) {
        <li>@tag.TagName</li>
    }
    </ul>