Ich bin neu bei Sitecore .. Ich habe eine Seitenvorlage erstellt und ein Feld für eine URL vom Typ General Link hinzugefügt. Ich habe ein anderes Feld für den Text für den Link erstellt (dies ist in diesem Projekt Standard).
Ich möchte einfach den Link in meinem Benutzer-Steuerelement anzeigen, aber ich kann es einfach nicht zum Laufen bringen. Dies sollte einfach sein, aber ich gehe in Kreisen
Hier ist ein Beispiel für den Code, den ich versucht habe.
ascx:
%Vor%ascx.cs:
%Vor% Sie sollten vorsichtig mit linkField.Url
umgehen, da es interne Links zu Sitecore-Elementen und Medien falsch darstellt. Sie sollten stattdessen Sitecore.Links.LinkManager.GetItemUrl(item)
und Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)
für diese verwenden.
Es wäre besser, eine Helfer (Erweiterung) -Methode zu haben, die die richtige URL für Sie zurückgibt, basierend auf dem Typ des Links. Werfen Sie einen Blick auf diese Sitecore Links mit LinkManager und MediaManager Blog Beitrag, der den richtigen Code hat, den Sie dafür benötigen.
Als Referenz:
%Vor%Verwendung:
%Vor% Es wäre natürlich am besten, <sc:FieldRender>
control zu verwenden und Sitecore dies für Sie übernehmen zu lassen, aber es sieht so aus, als hätten Sie diese Option nicht.
Ab Sitecore 7.2 gibt es eine Alternative zu linkField.Url:
%Vor%Eine neue LinkField.GetFriendlyUrl () -Methode wurde eingeführt. Die Methode macht es einfach, eine gültige URL auszugeben, unabhängig davon, welche Art von Verknüpfung das Feld enthält. Bei internen Links gibt die Methode eine URL von LinkManager.GetItemUrl () zurück. Bei Medienlinks gibt die Methode eine URL von MediaManager.GetMediaUrl () zurück. Bei externen Links, Ankerlinks, E-Mail-Links und JavaScript-Links gibt die Methode den Wert der LinkField.Url-Eigenschaft zurück. (400051)
Wenn Sie einem GeneralLink-Feld eines Elements einen Wert zuweisen, wird im Dialogfeld "Interner Link" ein Feld mit der Bezeichnung "Link Description" angezeigt. Füllen Sie diesen Wert aus und verwenden Sie dann:
%Vor%Das ist es. Alles ist für Sie "automatisch verkabelt", automatisch.
Sie müssen den Wert Linkfield
des Elements abrufen und dann den LinkField
-Typ dieses Elements abrufen. Dies gibt Ihnen die Art des Links entweder "Intern", "Extern", "Mailto" und basierend darauf kann die URL des Link-Feldes, wie dies von @jammykam erwähnt wird.
Dasselbe, was Sie tun können, um LinkText
ebenfalls abzurufen.
Als Referenz:
%Vor%