У меня (в Умбрако) родительский узел, дочерний элемент родительского элемента и дочерний элемент дочернего элемента.Все три узла имеют общее свойство комментария, возможно, что все 3 узла будут заполнены этим свойством или любой их комбинацией.
По сути, мне нужно знать, что текущий узел, на который я смотрю, заполнил это свойство, и еслине проверять родительский и т. д. рекурсивно вверх по дереву.
Итак, я написал следующий метод:
public int getRecursiveNodePropertyParent (Node targetNode, string alias)
{
//does this node have the property?
var found = getNodeProperty(targetNode.Id, alias);
if (found == "")
{
Node myparentNode = new Node(targetNode.Parent.Id);
getRecursiveNodePropertyParent(myparentNode, alias);
}
else
{
return Int32.Parse(targetNode.Id.ToString());
}
return 0;
}
Если текущая просматриваемая страница имеет заполненное свойствотогда функция работает нормально, но если текущая страница не имеет свойства, но ее родитель имеет, то функция не работает должным образом.
В основном, что происходит так: 1) Проверяет текущую страницу и2) ничего не находит 2) Затем вызывается функция, передающая родительский элемент текущей страницы. 3) Находит значение и нажимает «return Int32.Parse (targetNode.Id.ToString ());».4) Затем он продолжает проверять дерево *, т. Е. Затем попадает в строку 'getRecursiveNodePropertyParent (myparentNode, alias);'
- Это то, что я не так точно понимаю, когда строка 'возвращает Int32.Parse (targetNode.Id.ToString ());»должен привести к тому, что подпрограмма завершится и вернет правильный идентификатор, но блок кода не завершится.
Может ли кто-нибудь указать мне правильное направление, пожалуйста?
Спасибо, C