Orchard在我的自定义控制器中查询内容项

时间:2014-03-27 17:05:04

标签: orchardcms

标题几乎总结了它。我在Orchard创建了自己的模块。我可以通过http请求访问其操作,就像任何MVC应用程序中的普通控制器一样。

我使用命令行界面生成了控制器,它带有在构造函数中填充的IOrchardServices属性。

在我的Orchard网站上,我有一个博客,我填写了大约40篇博文。 如何从我的控制器中查询这些博客文章?

2 个答案:

答案 0 :(得分:3)

首先,我想先说:"阅读源luke"。您可能会发现Orchard缺少文档和示例,但由于它是开源的,因此可以在那里找到您想知道的所有内容。

您应该使用BlogPostService,将其注入您的控制器以获取您想要的博客文章。

你可以看到它在Orchard.Blogs中的几个控制器中使用:

查看BlogPostService中的代码以查看它是如何工作的,这有点令人困惑,因为博客是包含博客帖子的内容项目。如果您想了解更简单的查询内容项,我会查看BlogService的工作原理,它更容易掌握:

答案 1 :(得分:1)

这是我正在寻找的一个例子:

var query = Services.ContentManager.Query();

var list = query.ForType(new []{"BlogPost"}).List();

var result = new List<dynamic>();
foreach (var contentItem in list) {
    result.Add(new
    {
        title = contentItem.As<TitlePart>().Title, // dynamically typed: ((dynamic)contentItem).TitlePart.Title
        text = contentItem.As<BodyPart>().Text
    });
}