【问题标题】:Sitefinty : Get Blog Category by blog IDSitefinty : 通过博客 ID 获取博客类别
【发布时间】:2014-03-05 11:18:14
【问题描述】:

我想要一个所有类别的列表,这些类别与一个或多个博客相关联。 我能够获得所有博客和博客 ID 的列表。 如何通过与该博客关联的博客 ID 获取类别 ID。

BlogsManager blogsManager = BlogsManager.GetManager();
var bb = blogsManager.GetBlogPosts()
                     .Where(b => b.Status == ContentLifecycleStatus.Live) 
                     .ToList();

foreach (var blogItem in bb)
{
    var blogID = blogItem.Id ;
    //get Category ID here 
}

【问题讨论】:

  • 请发布博客的定义
  • 请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标记用于此目的。

标签: c# blogs categories sitefinity


【解决方案1】:

确保您的控件或页面中有以下 using 语句:

using Telerik.OpenAccess;
using Telerik.Sitefinity.GenericContent.Model;
using Telerik.Sitefinity.Model;
using Telerik.Sitefinity.Modules.Blogs;
using Telerik.Sitefinity.Taxonomies;

我已经修改了您上面的代码,以获取分配给每个帖子的类别:

BlogsManager blogsManager = BlogsManager.GetManager();
var bb = blogsManager.GetBlogPosts()
                     .Where(b => b.Status == ContentLifecycleStatus.Live)
                     .ToList();

foreach (var blogItem in bb)
{
    var blogID = blogItem.Id;
    var categoryIds = blogItem.GetValue<TrackedList<Guid>>("Category");

    var taxonomyManager = TaxonomyManager.GetManager();

    foreach (var catId in categoryIds)
    {
        var taxon = taxonomyManager.GetTaxon(catId);

        var id = taxon.Id;
        var name = taxon.Name;

    }
}

【讨论】: