在页面网址

时间:2016-03-29 09:16:55

标签: sitecore sitecore8

我正在使用Sitecore 8.1,我正试图从genral链接字段中获取价值。

我面临以下问题: -

  1. 如果我正在使用linkfield.url-它生成空值,我确实检查了sitecore并且该字段中有一个值。
  2. 如果我使用linkfield.getfriendlyurl() - Url正在生成" http://hostname/layouts/language-code/page.aspx"它包含"布局"这不在内容树中。 如果我要移除" var abc = item.Language.Name;"我只能在这里看到一件事。这个语言代码然后我没有在网址中获得布局。
  3. 在我的情况下,我必须在URL中添加语言。 请参阅以下代码以供参考。

      Sitecore.Data.Fields.LinkField linkField = item.Fields["Link"];
      var opts = (UrlOptions)UrlOptions.DefaultOptions.Clone();
      hlLink.NavigateUrl = item.Language.Name + Sitecore.Links.LinkManager.GetItemUrl(linkField.TargetItem,opts);
    

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

请尝试下面给出的代码。我认为您缺少使用语言代码的“/”,因此它会生成带有布局的URL(物理文件夹名称)。

Sitecore.Data.Fields.LinkField linkField = item.Fields["Link"];
  var opts = (UrlOptions)UrlOptions.DefaultOptions.Clone();
  hlLink.NavigateUrl = "/"+ item.Language.Name + Sitecore.Links.LinkManager.GetItemUrl(linkField.TargetItem,opts);