CMS 中有一个自定义内容类型“SideBarLinks”。我创建了一个查询来获取这种类型的项目列表:“SideBarLinks”并指定了排序和过滤条件。在 CMS 中预览查询结果时,这可以正常工作。
有没有办法我可以在代码中获得相同的列表,比如在任何 Controller 的 Action 方法中?有哪些果园类/服务可以查询?以及如何在 Controller 方法中执行所有这些过滤、查询结果排序?
到目前为止,我曾经使用以下代码查询内容项,这些代码是通过博客和其他论坛引用的。完全归功于他们。这似乎初始化IOrchardServices
并使用此服务获取项目。
public IOrchardServices Services { get; private set; }
public AdminController(IOrchardServices services, IShapeFactory shapeFactory) {
Services = services;
T = NullLocalizer.Instance;
Logger = NullLogger.Instance;
Shape = shapeFactory;
}
这是操作方法:
public ActionResult List(int id) {
List<ContentItem> query = Services.ContentManager.GetAllVersions(id).ToList();
if (!query.Any()) {
return HttpNotFound();
}
return View(query);
}
如何获取特定于 Query 的项目?