Experience Editor Context Item Issue

Hi All,

Currently I am working on a project task & found a wearied issue might be some of my colleague are aware from it. Issue is that when I am getting context item using

“Sitecore.Context.Item”. It’s work fine for normal mode & I am capable to perform my custom logic on context item but when I saw in Experience editor It always take home item when i call “Sitecore.Context.Item”, I try to debug the code & found in normal mode I am getting the context item(On which item i visited or current item) but in Experience mode it always take the Home Item.

So I look into the issue & try to resolve that & found that “Sitecore.Context.Item” not getting the context item in Experience mode so I found very good solution for that I just show the code which is useful for getting the context item in both mode(normal & Experience Editor mode). Code are below:

public Item GetContextItem()
        {
            Item item = null;
            if (Sitecore.Context.PageMode.IsExperienceEditor || Sitecore.Context.PageMode.IsExperienceEditorEditing || Sitecore.Context.PageMode.IsPreview)
            {
                if (Request.UrlReferrer != null)
                {
                    UrlString url = new Sitecore.Text.UrlString(Request.UrlReferrer.OriginalString);
                    var id = url.Parameters["sc_itemid"];
                    item = Sitecore.Context.Item;
                    // if a query string ID was found, get the item for page editor and front-end preview mode
                    if (!string.IsNullOrEmpty(id))
                    {
                        item = Sitecore.Context.Database.GetItem(id);
                    }
                }
            }
            else
            {
                item = Sitecore.Context.Item;
            }
            return item;
        }

Hope this is helpful for you. Please give suggestion and feedback both are welcome.

Regards

Sharma, Arun (init)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s