문제

나는 이전에 이것을 해냈다는 것을 알고 있지만 어디에서 어떻게 또는 어떻게 기억할 수없는 것 같습니다.

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top