Sitecore.Context.Database.GetItem() 在 sitecore 事件中不起作用
Sitecore.Context.Database.GetItem() not working in sitecore events
我正在使用 Sitecore 7.0
。 Visual Studio 2013
。我想使用事件处理程序在 Sitecore 中创建项目的子项。因此,无论何时创建项目,都会自动添加其子项。为此,我在“item:added
”事件上写了一个事件处理程序。
但我收到 NullReferenceException
异常“Exception Details: System.NullReferenceException: Object reference not set to an instance of an object
”。
我发现 Database.GetItem()
方法在 Sitecore Events 中不起作用。
Item entryFolderItem = Sitecore.Context.Database.GetItem("/sitecore/content/Site Config/Configuration/Entry Folders Structure");
上述项目存在于 sitecore 中,我也尝试过 ID
。但我仍然遇到同样的错误。
我也在事件 item:saved
上尝试了相同的代码,但我仍然遇到同样的错误。
对这个问题有什么建议!!
顺便说一句 here 你可以找到一篇关于事件的好文章。
我试图访问 Sitecore.Context.Database
但它没有用。然后我尝试 MasterDB
Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master");
Item entryFolderItem = masterDb.Items["/sitecore/content/Site Config/Configuration/Entry Folders Structure"]
结果很成功。
不要假设您可以获得上下文。此外,使用上下文数据库是错误的,因此使用硬编码的“主”数据库也是错误的。
当您从 EventArgs 中提取项目时,使用那里的 .Database 定义来执行您的操作。
Item eventItem = eventArgs.Parameters[0] as Item;
Database db = eventItem.Database;
我正在使用 Sitecore 7.0
。 Visual Studio 2013
。我想使用事件处理程序在 Sitecore 中创建项目的子项。因此,无论何时创建项目,都会自动添加其子项。为此,我在“item:added
”事件上写了一个事件处理程序。
但我收到 NullReferenceException
异常“Exception Details: System.NullReferenceException: Object reference not set to an instance of an object
”。
我发现 Database.GetItem()
方法在 Sitecore Events 中不起作用。
Item entryFolderItem = Sitecore.Context.Database.GetItem("/sitecore/content/Site Config/Configuration/Entry Folders Structure");
上述项目存在于 sitecore 中,我也尝试过 ID
。但我仍然遇到同样的错误。
我也在事件 item:saved
上尝试了相同的代码,但我仍然遇到同样的错误。
对这个问题有什么建议!!
顺便说一句 here 你可以找到一篇关于事件的好文章。
我试图访问 Sitecore.Context.Database
但它没有用。然后我尝试 MasterDB
Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master");
Item entryFolderItem = masterDb.Items["/sitecore/content/Site Config/Configuration/Entry Folders Structure"]
结果很成功。
不要假设您可以获得上下文。此外,使用上下文数据库是错误的,因此使用硬编码的“主”数据库也是错误的。
当您从 EventArgs 中提取项目时,使用那里的 .Database 定义来执行您的操作。
Item eventItem = eventArgs.Parameters[0] as Item;
Database db = eventItem.Database;