Sitecore 6中的项目为null

时间:2010-12-07 16:32:56

标签: c# sitecore sitecore6

有时,Sitecore不会退回某些商品。例如,在以下代码中:

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id);
Sitecore.Context.Database.GetItem(id);

这将返回null,但是如果在内容编辑器中的内容树上方的搜索上放置相同的字符串id,它将返回该项目!上下文数据库是web,我已多次重新发布该项目。

我使用的是Sitecore 6.2.0(rev.100701)。

3 个答案:

答案 0 :(得分:5)

你确定它不是拼写错误吗?我的意思是,您不应该将itemId而不仅仅id传递给GetItem吗?

我不记得它是如何工作的,但是如果你将一个字符串传递给这个方法,它可能会将它视为路径,而不是ID,并尝试按路径解析项目。你可以比我更快地检查这个:

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id);
Sitecore.Context.Database.GetItem(itemId);

答案 1 :(得分:5)

我遇到了同样的问题 - GetItem()函数返回NULL

拉了我的头发大约一个小时后,我发现我的GetItem()函数被前端调用,而extranet/Anonymous用户没有读取我正在尝试的项目的权限得到。

所以,请记得检查安全性!

答案 2 :(得分:0)

参考以下文章。 http://sdn.sitecore.net/Articles/API/Context%20and%20databases.aspx

在web.config上的网站名称="网站"节点可能指向错误的数据库。数据库属性应为" master"或" web"。