我知道我以前做过这个,但我似乎无法记住或者怎么样。

我想创建一个链接到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();

您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);
如下面

可以呈现产品链接:

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