проверьте, есть ли у узла свойство

#asp.net-4.0 #umbraco

#asp.net-4.0 #umbraco

Вопрос:

Я пытаюсь проверить, имеет ли определенный узел свойство «footerTextTitle» с помощью:

 @foreach (var nodeLink in footerTop.ChildrenAsList.Where(n => n.GetProperty("footerTextTitle").IsNull() == true))
  {
    <li><a href='@nodeLink.GetProperty("footerLinkUrl").Value.ToString()'>@nodeLink.GetProperty("footerLinkTitle").Value.ToString()</a></li>
  }
  

и получение «Ссылка на объект не установлена для экземпляра объекта». ошибка.

Как я могу это сделать? Спасибо.

Комментарии:

1. Извините, на самом деле я получаю эту ошибку внутри макроса, к которому прикреплен этот скрипт razor, поэтому я действительно не вижу трассировку стека. Если нет другого способа увидеть это??? (прошу прощения за невежество)

2. оказывается, решение простое: if (n.getProperty(«footerTextTitle») == null) …

3. Вы также можете указать это в Where вызове.

Ответ №1:

Чтобы проверить, существует ли свойство, просто проверьте, имеет ли свойство значение null, как показано ниже

 @foreach (var nodeLink in footerTop.ChildrenAsList.Where(n => n.GetProperty("footerTextTitle") == null))
  {
    <li><a href='@nodeLink.GetProperty("footerLinkUrl").Value.ToString()'>@nodeLink.GetProperty("footerLinkTitle").Value.ToString()</a></li>
  }
  

P.S. Для отладки добавьте это к URL

http://www.example.com/page.aspx ?umbDebugShowTrace=true