Получение типов контента в Orchard CMS

Я создал представление с помощью модуля, теперь в контроллере этого представления мне нужно получить определенный тип контента и вернуться к просмотру. Пожалуйста, может кто-нибудь поработать с образцом кода.


person Hammad Bukhari    schedule 29.12.2013    source источник


Ответы (1)


Вам нужно будет внедрить службы IContentManager в конструктор вашего контроллера (см. внедрение зависимостей), но, поскольку вам нужно будет заполнить новую форму, вы можете внедрить IOrchardServices, которые будут включать в себя несколько общих OrchardServices в одном экземпляре.

 IOrchardServices services;
 public MyController(IOrchardServices services){
     this.services = services;
 }      

Затем в своем действии (если вы хотите показать его в интерфейсе, вам нужно будет пометить его как тематическое), сделайте что-то вроде этого:

[Themed]
public ActionResult MyAction(){
  //Notice that you can filter the contentItems here, this is just a basic example
  var myContentItems = services.ContentManager.Query().ForType("MyContentItem").List();

 //You probably need to create a new shape for showing the ContentTypes
  var shape = services.New.YourCustomShape(); //Notice that you must create a view that matches this name
  shape.YourContentItems = myContentItems;
  return new ShapeResult(this, shape);

}

И это все.

person jmgomez    schedule 29.12.2013
comment
Также взгляните на этот docs.orchardproject.net/Documentation/Writing-a- часть содержимого - person mberacochea; 30.12.2013