2012-11-09 10 views
5

Mam problemy z używaniem domyślnych "powiązanych linków" umbraco. Moim problemem jest to, że chcę powtórzyć dzieci/opcje obiektu. Widziałem przykłady przy użyciu xml i xslt, ale zastanawiam się, czy istnieje możliwość wykorzystania czystego C# wewnątrz kontroli użytkownika.Jak iterować "Łącza pokrewne" przy użyciu C#

Coś takiego (Ale wariant pracy)

Node node = new Node(Node.getCurrentNodeId()); 
var linklist = node.GetProperty("link"); 
if (node.GetProperty("link") != null) 
{ 
    foreach (var item in linklist) 
    { 
     //get each item here 
    } 
} 

Dzięki!

(Ja również wysłana pytanie here)

Odpowiedz

0

Ok, więc oto co zrobiłem, aby to działało. Użyłem odpowiedzi Jorge'a, ale zmieniłem ją trochę, bardzo niewiele. Za pomocą patrząc w umbraco.config ten sposób zrobiłem

@using umbraco.MacroEngines 
@using umbraco.NodeFactory; 
@{ 
var root = Model; 
var links = root.link; 
if (links == null) 
{ 
    return; 
} 
foreach(var item in links) 
{ 
    DynamicNode linkNode = Model.NodeById(@item.link); 
    Response.Redirect(@linkNode.Url); 
    break; 
} 
} 

myślę, że może użyłem trochę asnwer Dereka w usercontrol. Mam na myśli to, że mogłem wybrać właściwość jak zwykle i wykorzystany XmlTextReader do odczytu części xml wybranej właściwości. Dzięki za twoją halp!

8

Myślę, że powinieneś być w stanie zrobić coś takiego (Razor)

@using umbraco.MacroEngines 
@inherits DynamicNodeContext 
@{ 
    var root = Model.AncestorOrSelf(); 
    var links = root.FooterLinks.link; 
    <ul class="nav nav-pills"> 
    <li><span>@Dictionary.RelatedLinks</span></li> 
    @foreach (var item in links) 
    { 
     var url = item.type == "internal" ? Library.NodeById(item.link).Url : item.link; 
     var rel = item.type == "external" ? " rel=\"external\"" : string.Empty; 
     var title = item.title; 
     <li><a href="@url"@Html.Raw(rel)>@title</a></li> 
    } 
    </ul> 
} 
+0

dzięki. Spróbuję w ten poniedziałek :-) – Andreas

Powiązane problemy