إنشاء رابط إلى Sitecore البند
سؤال
وأنا أعلم أنني قد فعلت هذا من قبل ولكن لا أستطيع أن يبدو أن تتذكر أين أو كيف.
وأريد إنشاء ارتباط إلى عنصر في 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