Sitecore:访问特定语言的项目时出现的问题

时间:2016-01-18 13:38:44

标签: c# sitecore sitecore7 sitecore7.2

我在sitecore中有一个ID为“{05B1C498-39D1-40D6-B454-2A3277A6DDF9}”的商品,其中“en”中有一种语言版本,“da-DK”中有一种语言版本。

对于此项,有一个字段“Test”,类型为text,在英文版本中,我已在此字段中保存了“英文文本”。对于以上项目的丹麦语版本,我在“Test”字段中保存了“丹麦语文本”。

我想用丹麦语获得上述项目。我用了这段代码:

string dicItemId= "{05B1C498-39D1-40D6-B454-2A3277A6DDF9}"
Item dictionaryItem = Context.Database.GetItem(dicItemId, Sitecore.Data.Managers.LanguageManager.GetLanguage("da-DK"));

lblTest.Text = dictionaryItem["Test"];

我希望看到上面标签的字符串“Danish Text”。但不知何故,它没有获得丹麦版本和输出是“英文文本”。

我还试图用我的Sitecore中不存在的语言获取上述项目的版本,我试过:

Item dictionaryItem = Context.Database.GetItem(dicItemId, Sitecore.Data.Managers.LanguageManager.GetLanguage("nl-NL"));

我希望dictionaryItemnull,但它仍然包含ID为“{05B1C498-39D1-40D6-B454-2A3277A6DDF9}”的项目

1 个答案:

答案 0 :(得分:0)

要进行问题排查,请尝试以下步骤:

  • 确保以“da-DK”语言发布项目。
  • 该字段不是[共享]

Context.Database.GetItem(..)将始终返回Item(如果它存在),即使它不包含特定的语言版本。

尝试以下简单测试以确保您的语言中的项目已发布:

enter image description here