【问题标题】:GlassMapper GetHomeItem<T> always returning nullGlassMapper GetHomeItem<T> 总是返回 null
【发布时间】:2018-02-14 03:00:16
【问题描述】:

我已经使用 GlassMapper 很长时间了,这段代码一直运行得完美无缺;今天,在与 Home 项的子项一起玩之后,它不再起作用 - 即使我撤消了我的更改。

在 Internet 上,我没有找到有关此方法及其失败状态的文档 - 在哪些情况下我应该无法检索网站根项目的包装器?

有问题的行是:

var root = new SitecoreContext().GetHomeItem<MenuPage>();

【问题讨论】:

  • 编辑内容是什么?
  • 查看历史,貌似在代码块上添加了Sitecore7标签和语法高亮。

标签: sitecore sitecore7 sitecore7.2 glass-mapper


【解决方案1】:

此方法使用您当前站点的数据检索主页项目。你应该检查:

  • Sitecore.Context.Site 的值是多少
  • Sitecore.Context.Site.StartPath 的值是多少
  • new SitecoreContext().Database 的值是多少
  • new SitecoreContext().Database.GetItem(Sitecore.Context.Site.StartPath) 的值是多少

【讨论】:

  • 不走运。所有这些值都是正确的,我可以轻松检索 Sitecore.Context.Database.GetItem("/sitecore/content/ecosystem") 这是我网站的根目录。但我无法以任何方式检索此项目的 GlassMapper 包装器,它总是如此。还给我。无效的。每一次。这种情况以前从未发生过,它开始无缘无故地发生 - 我无法解决这个问题,因为问题或真正问题的线索嵌套在 Glass Mapper DLL 中。我完全被卡住了。
  • 即使使用项目的 ID 来检索它,我也会得到空值。这很疯狂。我试过: new SitecoreContext().GetItem() 无济于事。显然,这里还有别的东西在起作用。有什么线索吗?
【解决方案2】:

如果主页项的发布限制阻止任何版本的发布,则可能会发生这种情况。

因此,请务必检查以确保主页项目没有阻止任何版本发布的发布限制。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,原来我网站的 rootPath 是错误的,它包含 /Home 项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-04
      • 2016-11-02
      • 2014-05-06
      • 2012-06-05
      • 2014-05-30
      • 2014-02-23
      • 2017-10-12
      • 2013-08-16
      相关资源
      最近更新 更多