题
我知道我以前做过这个,但我似乎无法记住或者怎么样。
我想创建一个链接到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);
不隶属于 StackOverflow