Orchardcms Orchard查询“我的自定义控制器”中的内容项

Orchardcms Orchard查询“我的自定义控制器”中的内容项,orchardcms,Orchardcms,这个标题大致概括了这一点。我在Orchard创建了自己的模块。我可以通过http请求访问它的操作,就像任何MVC应用程序中的普通控制器一样 我使用命令行界面生成了控制器,它附带了IOrchardServices属性,该属性在构造函数中填充 在我的Orchard网站上,我有一个博客,里面有大约40篇博客文章。 如何从我的控制器中查询这些博客帖子?首先,我想说:“阅读源代码”。您可能会发现Orchard缺少文档和示例,但因为它是开源的,所以您想知道的几乎都可以在那里找到 你应该使用BlogPostS

这个标题大致概括了这一点。我在Orchard创建了自己的模块。我可以通过http请求访问它的操作,就像任何MVC应用程序中的普通控制器一样

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

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

首先,我想说:“阅读源代码”。您可能会发现Orchard缺少文档和示例,但因为它是开源的,所以您想知道的几乎都可以在那里找到

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

您可以看到它在Orchard内的多个控制器中使用。博客:

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


首先,我想说:“阅读源代码”。您可能会发现Orchard缺少文档和示例,但因为它是开源的,所以您想知道的几乎都可以在那里找到

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

您可以看到它在Orchard内的多个控制器中使用。博客:

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


    • 以下是我正在寻找的一个例子:

      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
          });
      }
      
      var query=Services.ContentManager.query();
      var list=query.ForType(new[]{“BlogPost”}).list();
      var result=新列表();
      foreach(列表中的var contentItem){
      结果。添加(新)
      {
      title=contentItem.As().title,//动态类型:((动态)contentItem).TitlePart.title
      text=contentItem.As().text
      });
      }
      
      以下是我正在寻找的示例:

      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
          });
      }
      
      var query=Services.ContentManager.query();
      var list=query.ForType(new[]{“BlogPost”}).list();
      var result=新列表();
      foreach(列表中的var contentItem){
      结果。添加(新)
      {
      title=contentItem.As().title,//动态类型:((动态)contentItem).TitlePart.title
      text=contentItem.As().text
      });
      }