我在Sitecore的内容树中创建了一个结构,如下所示: Home根项目,基于模板。然后我在Home项下有一系列文件夹,按日期命名。
我正在创建一个命令模板,这样当我在Home项下添加一个新项时,它会自动将它移动到当前日期所代表的文件夹下。
但是,Item类'MoveTo
方法仅将Item作为参数。所以我不知道如何告诉它将项目移动到文件夹中,因为文件夹不能表示为项目?
我已经做了一些挖掘,我已经看到当我将项目直接放在文件夹下时,它显示的是与我直接放在Home项目下面的不同的ParentID,这意味着该文件夹确实是一个项目。但是,当我尝试检索文件夹所代表的Item时,我得到null。
e.g。 Sitecore.Context.Database.Items["/sitecore/content/Home/30Nov2011"];
答案 0 :(得分:5)
Sitecore中的所有内容都是项目(甚至是文件夹),您可以使用path
对象基于GUID
或Database
将文件夹解析为项目。
var currentDb = Sitecore.Data.Database.GetDatabase("master");
var folderItem = currentDb.GetItem("/sitecore/content/Home/30Nov2011");
Sitecore.Context.Item.MoveTo(folderItem);
编辑当您在内容编辑器环境中工作时,您需要明确告诉它使用哪个数据库(本例中为master
数据库)作为{{1} scope不包含您希望使用的数据库。
希望这有帮助。