Введите True/False в Умбрако

Мы хотим реализовать флажок [Тип: true/false] в DocumemtType в Umbraco.

Наша текущая потребность в проекте:

флажок, который решит, должно ли изображение быть ссылкой или всплывающим

Код идет по этому пути...

    var child= @Model;

    if(child.GetProperty("popUp").Value.ToString() == "1")
      {
        // true means image will act as popup
      }
     else
      {
         // false means image will act as link
      }

Но проблема в том, что произошла ошибка "Невозможно выполнить привязку во время выполнения для пустой ссылки"

Я также пробовал код, как,

      if (child.GetProperty("popup").Value.Equals("1"))
             {

             }

или же

      if (child.GetProperty("popup").Value.ToString().Equals("1"))
             {

             }

но все еще не в состоянии получить это. Все предложения приветствуются.

4 ответа

Решение

Использовал приведенный ниже код, и он работал нормально для меня

var child= @Model;

if(@child.popUp)
  {
    // true means image will act as popup
  }
 else
  {
     // false means image will act as link
  }

node.GetProperty("popUp") - это путь. Если ваше контрольное значение на самом деле является строкой, то ваша логика проверки будет выглядеть

if (node.GetProperty<string>("popUp") == "1"){}

Эффективно универсальный GetProperty - это то, что делает ваш код, но он обрабатывает нулевой регистр, возвращая default (string).

(Я никогда не использовал динамическую вещь, на случай, если там что-то пойдет не так, выполните типизированный var node = new Node(id);)

Поскольку вы недавно добавили свойство к типу документа, если каждый узел этого типа не был опубликован, свойство вернет значение null. Сначала вам нужно проверить, является ли свойство нулевым, а затем проверить, имеет ли оно значение true.

var popUp = child.GetProperty("popUp");
if (popUp != null && popUp.Value.Equals("1"))
{
    // popup...
}
else
{
    // link...
}

Использовать этот:

var child = @Model;

if(child.GetPropertyValue<bool>("popUp", false))
  {
    // true means image will act as popup
  }
 else
  {
     // false means image will act as link
  }
Другие вопросы по тегам