试图将站点核心项目移动到内容树中的文件夹中

本文关键字:文件夹 移动 站点 核心 项目 | 更新日期: 2023-09-27 18:16:36

我在Sitecore的内容树中创建了如下结构:基于模板的Home根项。然后在Home项下有一系列文件夹,按日期命名。

我正在创建一个命令模板,以便当我在Home项下添加新项时,它会自动将其移动到当前日期表示的文件夹下。

但是,Item类的MoveTo方法只接受Item作为参数。所以我不知道如何告诉它将项目移动到文件夹中,因为文件夹不能表示为项目?

我做了一些研究,我发现当我将一个项目直接放在文件夹下时,它显示的ParentID与直接放在Home项目下时显示的ParentID不同,这意味着文件夹确实是一个项目。但是,当我尝试检索由Folder表示的Item时,我得到null。

Sitecore.Context.Database.Items["/sitecore/content/Home/30Nov2011"];

试图将站点核心项目移动到内容树中的文件夹中

Sitecore中的一切都是一个项目(甚至文件夹),您可以使用Database对象将文件夹解析为基于其pathGUID的项目。

var currentDb = Sitecore.Data.Database.GetDatabase("master");
var folderItem = currentDb.GetItem("/sitecore/content/Home/30Nov2011");
Sitecore.Context.Item.MoveTo(folderItem);

Edit:当您在内容编辑器环境中工作时,您需要显式地告诉它要使用哪个数据库(在这种情况下是master数据库),因为Context作用域不包含您希望使用的数据库。

相关文章: