2016-03-29 15 views
1

私はSitecore 8.1で作業しており、genral linkフィールドから値を取得しようとしています。ページのURLを取得する

が、私は問題の下に直面しています: -

  1. 私はそれがNULL値を生成しますlinkfield.url-使用している場合は、私は、サイトコアにチェックしなかったし、フィールドの値があります。
  2. 私がlinkfield.getfriendlyurl()を使用している場合、URLは "http://hostname/layouts/language-code/page.aspx"と生成されています。コンテンツツリーにはない「レイアウト」が含まれています。 「var abc = item.Language.Name;」を削除すると、ここで確認できるのは1つだけです。この言語コードは、私はURLのレイアウトを取得していません。

私の場合、URLに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); 

ご協力いただければ幸いです。

+2

http://stackoverflow.com/questions/19919954/generallink-in-sitecore –

答えて

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); 

これがあなたに役立つことを願っています。

まだ問題がある場合は教えてください。

+0

ありがとう@yogeshそれは私のために働いた! – Arpit

+0

Arpitを聞いてうれしい!! –

関連する問題