문제
나는 이전에 이것을 해냈다는 것을 알고 있지만 어디에서 어떻게 또는 어떻게 기억할 수없는 것 같습니다.
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 링크를 사용할 수 없습니다.
Sitecore.Web.UI.WebControls.Link
해결책
Sitecore v6 또는 더 최근의 것을 실행하고 있다고 가정 할 때 (8.2-6으로 테스트 된 9와 함께 작동해야 함) :이 문제가 필요합니다.
Sitecore.Links.LinkManager.GetItemUrl(item);
다른 팁
여전히 Sitecore 5.3을 사용하고 있다면 이것을 사용할 수 있습니다. 이 방법은 Sitecore 6.0에서 더 이상 사용되지 않습니다.
string url = item.Paths.GetFriendlyUrl();
귀하의 웹 컨트롤 :
<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);
다음과 같이 항목 링크를 렌더링 할 수 있습니다.
Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);
이 시도
<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);
이것도 할 수 있습니다.
Item.Paths.FullPath
다음과 같습니다.
Sitecore.Links.LinkManager.GetItemUrl(item);
제휴하지 않습니다 StackOverflow