2009-03-23 12 views
22

私はこれまでこれをやったことが分かっていますが、どこでどのように覚えているかわかりません。Sitecoreへのリンクを作成する項目

Sitecoreでアイテムへのリンクを作成したいとします。 このコード:

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID); 
return itm.Paths.Path.ToString(); 

は、次の文字列を生成します:

http://localhost/sitecore/content/Home/Item1/Item11/thisItem 

私が代わりにこの文字列を持っているしたいと思います:

へのパスを取得するための正しい方法は何ですか
http://localhost/Item1/Item11/thisItem.aspx 

項目?この場合、私は、通常のサイトコアのリンクを使用することはできません。

Sitecore.Web.UI.WebControls.Link 

答えて

35

あなたはサイトコアのV6を実行していると仮定すると、このいずれかを必要としています。

Sitecore.Links.LinkManager.GetItemUrl(item); 
4

まだSitecore 5.3を使用している場合は、これを使用できます。このメソッドは、Sitecore 6.0では推奨されていません。

ます。また、このことにより、行うことができます
string url = item.Paths.GetFriendlyUrl(); 
-6

Item.Paths.FullPath 

それは同じです:

Sitecore.Links.LinkManager.GetItemUrl(item); 
+1

aspx.csこの

<asp:HyperLink ID="hlItem" runat="server"> </asp:HyperLink> 

を試してみてください。 FullPathはアイテムパスを返し、GetItemUrl()はLinkProviderを使用してフレンドリURLを作成します。 –

1

あなたのWebコントロール:

<asp:HyperLink ID="HyperLinkItem" runat="server"> 
    Item 
</asp:HyperLink> 

あなたのコード:

var homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home"); 
HyperLinkItem.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem); 
1

あなたは以下のようにアイテム・リンクをレンダリングすることができます

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID); 
return Sitecore.Links.LinkManager.GetItemUrl(itm); 
0

いいえ、それはまったく同じではありません

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem("/sitecore/content/Home"); 

    hlItem.Navigateurl =sitecore.links.linkmanager.getitemurl(itm); 
関連する問題