Sitecore 6中的项目为null

lur*_*her 5 c# sitecore sitecore6

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

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id);
Sitecore.Context.Database.GetItem(id);
Run Code Online (Sandbox Code Playgroud)

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

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

Yan*_*nko 5

你确定它不是拼写错误吗?我的意思是,你不应该通过itemId而不是仅仅id通过GetItem

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

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id);
Sitecore.Context.Database.GetItem(itemId);
Run Code Online (Sandbox Code Playgroud)

  • 那是因为extranet\anonymous没有对该项的读访问权.很好,它现在解决了 (4认同)

小智 5

我刚才有同样的问题 - GetItem()函数返回NULL

拉了我的头发大约一个小时后,我发现我的GetItem()功能是由前端调用的,extranet/Anonymous用户没有读取我想要获取的项目的权限.

所以,记得检查安全性!