23

我知道我以前做过,但我似乎不记得在哪里或如何做。

我想在 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
4

6 回答 6

37

您需要这个,假设您正在运行 Sitecore v6 或任何更新版本(使用 8.2-6 测试,也应该使用 9):

Sitecore.Links.LinkManager.GetItemUrl(item);
于 2009-03-23T20:30:52.380 回答
4

如果您仍在使用 Sitecore 5.3,则可以使用它。请注意,此方法在 Sitecore 6.0 中已弃用。

string url = item.Paths.GetFriendlyUrl();
于 2009-07-31T02:49:26.147 回答
1

您的网络控制:

<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);
于 2013-04-23T01:42:21.543 回答
1

您可以如下呈现项目链接:

Sitecore.Data.Items.Item itm = Sitecore.Context.Database.GetItem(someID);
return Sitecore.Links.LinkManager.GetItemUrl(itm);
于 2013-09-23T15:46:41.957 回答
0

试试这个

  <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);
于 2014-08-29T15:51:10.697 回答
-6

你也可以这样做:

Item.Paths.FullPath

它与以下内容相同:

Sitecore.Links.LinkManager.GetItemUrl(item);
于 2012-08-09T17:59:58.800 回答