5

In my GlassMapper model I'm getting the children of the current page using the following declaration:

public IEnumerable<BasePage> Subpages => GetChildren<BasePage>(TemplateId);

Is there a similar method I could use to get the properties of the parent of the current page into a BasePage model? I can use the template ID of this item to get the Sitecore.Data.Items.Item parent of the page, but when I have this item I've been unable to convert it back into the BasePage model.

2 Answers 2

12

You can use the [SitecoreParent] attribute for that:

[SitecoreParent]
public virtual BasePage Parent { get; set; }

It is also mentioned in the Tutorial 17 (http://www.glass.lu/mapper/sc/tutorials/tutorial17)

2
  • Yep, this is what I was looking for. Thanks!
    – c-bro
    Commented Dec 30, 2016 at 20:15
  • 1
    to get parent of parent ?
    – user4124
    Commented Dec 6, 2018 at 15:29
1

This is what I've come up with up to this point. It's working for me, but I'm unsure if there is a more direct way to grab the parent item:

public virtual BasePage getParent()
{
    ISitecoreContext context = SitecoreContext.GetFromHttpContext();
    return context.Cast<BasePage>(Sitecore.Context.Database.GetItem(this.Id.ToString()).Parent);
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.