Umbraco — свойство как коллекция IPublishedContent

Я работаю с типом документа umbraco, который имеет коллекцию IPublishedContent в качестве свойства. Это проявляется в представлении в виде строки, которая представляет собой CSV ключей объектов, которые затем я должен проанализировать и найти базовые значения с помощью помощника по содержимому.

 by @foreach (var author in Umbraco.Content(story.GetPropertyValue<string>("author").Split(',')))
   {
      @author.Name 
   }

Как разработчик MVC, это кажется очень неправильным. Есть ли лучший способ, который мне не хватает? В идеале Umbraco должен знать, что это на самом деле элементы контента, и сопоставлять их, подобно свойству навигации в ORM.

Был бы рад использовать строго типизированный подход, но я не могу найти много документации, кроме как разбить все на дочерние действия.


person Jon Eastwood    schedule 10.06.2014    source источник
comment
Я тоже так делаю, возможно, что-то есть в помощниках умбрако. Но, в конце концов, сохраненные данные на самом деле представляют собой просто CSV идентификаторов. Но было бы очень хорошо, если бы мы могли GetPropertyValue‹List‹IPublishedContent››(автор)!   -  person Sébastien Richer    schedule 10.06.2014


Ответы (1)


Как разработчик MVC, вам следует изучить преобразователи значений редактора свойств. (документация), которые позволяют вам сделать story.GetPropertyValue<List<IPublishedContent>>("myAlias")

Метод .GetPropertyValue‹>() будет использовать соответствующий преобразователь значений.

Если вы работаете с v7, они называются «преобразователями значений свойств», но работают одинаково.

При разработке преобразователя значений обязательно используйте ContentCache (и не полагайтесь на uQuery или службы, поскольку они запускают запросы к базе данных).

person dampee    schedule 16.06.2014
comment
Ссылка не работает. Это может помочь преобразователям значений свойств - person ali; 01.03.2016