2009-06-10 10 views
22

Ejecutando Umbraco 4x Estoy creando un método de ayuda en C# que puedo llamar recursivamente para crear categorías hijo de un nodo particular (categoría).Umbraco - Get Node por ID programmatically

El método toma un parentNodeID como parámetro. Necesito recuperar las propiedades de ese nodo padre. Sé que puedo usar el método estático Node.GetCurrent() pero estoy buscando algo como Node.GetNodeById (parentNodeID).

Simplemente no puedo ver dónde vive este método. Sé que existe el método umbraco.library.getNodeXMLbyId, pero ¿eso me da la propiedad del nombre del nodo?

Me Umbraco N00b :)

Respuesta

40

justo Usted puede hacer

var node = new Node(nodeId). 

Me tomó un tiempo para encontrar también!

+0

traviesa. Sabía que tenía que ser algo simple como eso. ¡Ánimo, Sam! – autonomatt

+12

Sí, la elección de Umbraco de usar constructores para devolver instancias persistentes existentes es bastante extraña, y yo diría ... inusual. – nicodemus13

+2

+1 para ambos. Me ayudó. También necesité agregar usando umbraco.NodeFactory; – Aximili

0

También se puede hacer

Document doc = new Document(nodeId) 

Esto funciona igual que Node pero obtiene los valores directamente de la base de datos en lugar de la memoria caché XML. Use esto si va a actualizar los valores de las propiedades de los documentos.

+1

Pero tenga en cuenta que para la lectura del front-end, siempre debe usar el nodo XML publicado. –

+0

@Markus Muy cierto. –

+0

Si hace esto en Umbraco 7, recibirá la advertencia: 'umbraco.cms.businesslogic.web.Document' está obsoleto: 'Obsoleto, use Umbraco.Core.Models.Content' – user1069816

1

Utilice esta

umbraco.NodeFactory.Node headerNode = uQuery.GetNode(NodeId); 

complemento espacio de nombres

using umbraco.NodeFactory;