Получить все строго типизированный документ определенного типа с Umbraco - PullRequest
0 голосов
/ 16 мая 2018

У меня есть веб-сервис, в котором я хочу получить весь документ определенного типа контента, но как строго типизированный объект. Я пытался использовать это:

var contentType = Services.ContentTypeService.GetContentType(PensionPoint.ModelTypeAlias);
var points = Services.ContentService.GetContentOfContentType(contentType.Id).ToList();

Однако, я получаю объект IContent, на котором я не могу сделать Object.Property. Как я могу получить те же элементы, но как объект со строгими типами?

1 Ответ

0 голосов
/ 17 мая 2018

Вы используете неправильный API Umbraco, вам нужно использовать Umbraco Helper для получения опубликованного элемента контента, а не API сервиса, который возвращает элемент IContent.

var umbracoHelper = 
      new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
var pensionPoints = 
      umbracoHelper.TypedContentAtRoot().First().Descendants<PensionPoint>();

Конечно, вы можете получить экземпляр UmbracoHelper напрямую, если ваш код находится в контроллере или представлении.

Кроме того, имейте в виду, что в приведенном выше коде предполагается, что ваш контент находится под одним "домашним" узлом.

Наконец, производительность может быть не очень хорошей, если на вашем сайте много контента, и в этом случае вы можете использовать запрос XPATH и привести результат к вашему классу.

...