如何在 item:deleted 事件中获取 Sitecore 项目的父项?

How to get the parent of a Sitecore item in the item:deleted event?

在 Sitecore 中处理 item:deleted 事件时,传入的 Item 的父级为空:

using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.Events;

public void OnItemDeleted(object sender, EventArgs args)
{
    Item item = Event.ExtractParameter(args, 0) as Item;
    Item itemParent = item.Parent;
    if (itemParent != null)
    {
        // Do stuff
    }
}

它永远不会到达 // Do stuff 因为 itemParent 总是空的。

传入该方法的第二个参数是Parent的ID。更新方法如下:

using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.Events;

public void OnItemDeleted(object sender, EventArgs args)
{
    Item item = Event.ExtractParameter(args, 0) as Item;
    ID parentId = Event.ExtractParameter(args, 1) as ID;
    Item itemParent = item.Database.GetItem(parentId);
    if (itemParent != null)
    {
        // Do stuff
    }
}