尝试将sitecore项目移动到内容树中的文件夹中

时间:2011-12-05 11:00:58

标签: c# sitecore sitecore6

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

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

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

我已经做了一些挖掘,我已经看到当我将项目直接放在文件夹下时,它显示的是与我直接放在Home项目下面的不同的ParentID,这意味着该文件夹确实是一个项目。但是,当我尝试检索文件夹所代表的Item时,我得到null。

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

1 个答案:

答案 0 :(得分:5)

Sitecore中的所有内容都是项目(甚至是文件夹),您可以使用path对象基于GUIDDatabase将文件夹解析为项目。

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

编辑当您在内容编辑器环境中工作时,您需要明确告诉它使用哪个数据库(本例中为master数据库)作为{{1} scope不包含您希望使用的数据库。

希望这有帮助。