c# user-controls umbraco

Cómo iterar un "Enlaces relacionados" usando C#



user-controls umbraco (3)

¿Sabes de Serialización / De-Serialización XML?

Investigaría esta área, le permitirá leer más fácilmente datos XML, deserializando su XML en objetos C # como listas de matrices.

http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization

Espero que esto sea de uso.

Tengo problemas para usar el tipo de datos predeterminado de umbraco "enlaces relacionados". Mi problema es que quiero iterar los elementos / opciones de la propiedad. He visto ejemplos usando xml y xslt pero me pregunto si hay alguna posibilidad de usar pure c # dentro de un Control de usuario.

Algo así (pero una variante de trabajo)

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 } }

¡Gracias!

(También he publicado la pregunta aquí )


Creo que deberías ser capaz de hacer algo como esto (Navaja)

@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> }


Ok, entonces esto es lo que hice para que funcione. Usé la respuesta de Jorge, pero la cambié un poco, muy poco. Con la ayuda de mirar en el umbraco.config, así es como lo hice

@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; } }

Creo que podría haber usado un poco de la respuesta de Derek en un control de usuario. Con eso me refiero a que podría haber seleccionado la propiedad como siempre y utilizar XmlTextReader para leer la parte xml de la propiedad seleccionada. Gracias por tu Halp!