#sitecore #glass-mapper
#sitecore #glass-mapper
Вопрос:
Я пытаюсь получить все элементы на текущем уровне элемента. Я использую Glass Mapper SitecoreQuery
для того же. Я могу получить текущий элемент, но не могу сопоставить всех братьев и сестер
public class TestModel:BaseModel
{
[SitecoreQuery("../*")]
public virtual IEnumerable<Model1> Siblings { get; set; }
}
[SitecoreType(AutoMap = true)]
public class Model1 : BaseModel
{
}
Базовая модель имеет все необходимые поля и правильно сопоставлена. Я на самом деле пытаюсь отобразить все элементы на уровне текущего элемента.
Комментарии:
1. Попробуйте добавить второй параметр в
SitecoreQuery
:IsRelative = true
вот так:[SitecoreQuery("../*", IsRelative = true)]
2. Вы пытаетесь получить все элементы одного уровня или только братьев и сестер (т. Е. Исключая текущий элемент)?
3. IsRelative в конце важен, он сообщает Glass. Mapper для выполнения запроса относительно элемента, который представляет класс. Также вы должны добавить
[SitecoreType(AutoMap = true)]
выше своего класса TestModel.4. Спасибо. «IsRelative = true» сработало для меня.
5. @Deb Я рад, что это помогло. Комментарий преобразован в ответ.
Ответ №1:
Добавьте второй параметр в SitecoreQuery
: IsRelative = true
вот так:
[SitecoreQuery("../*", IsRelative = true)]
public virtual IEnumerable<Model1> Siblings { get; set; }
Он сообщает Sitecore запускать запрос на уровне вашего элемента, а не начинать с корня дерева.
Вы можете найти более подробную информацию в официальном руководстве Sitecore Glass Mapper