2009-03-23 30 views
22

Tôi biết tôi đã làm điều này trước đây nhưng tôi dường như không thể nhớ được ở đâu hoặc như thế nào.Tạo liên kết đến Sitecore Item

Tôi muốn tạo liên kết tới một Mục trong Sitecore. Mã này:

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

Tạo chuỗi sau:

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

Tôi muốn có chuỗi này thay vì:

http://localhost/Item1/Item11/thisItem.aspx 

cách chính xác để có được đường dẫn đến là gì mục? Trong trường hợp này, tôi không thể sử dụng liên kết Sitecore thông thường:

Sitecore.Web.UI.WebControls.Link 

Trả lời

35

Bạn cần trang này, giả sử bạn đang chạy Sitecore v6.

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

Nếu bạn vẫn đang sử dụng Sitecore 5.3, bạn có thể sử dụng tính năng này. Được cảnh báo rằng phương pháp này không được chấp nhận trong Sitecore 6.0.

string url = item.Paths.GetFriendlyUrl(); 
-6

Bạn có thể làm bằng cách này cũng:

Item.Paths.FullPath 

Nó là giống như:

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

Không, nó không giống nhau ở tất cả. FullPath trả về đường dẫn mục, GetItemUrl() sử dụng LinkProvider để tạo một URL thân thiện. –

1

kiểm soát Web của bạn:

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

Mã của bạn:

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

Bạn có thể khiến liên kết mục như sau:

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

Hãy thử điều này

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

    </asp:HyperLink> 

aspx.cs

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

    hlItem.Navigateurl =sitecore.links.linkmanager.getitemurl(itm); 
Các vấn đề liên quan