在Umbraco中键入True / False

时间:2013-05-27 14:24:07

标签: umbraco umbraco5 umbraco-blog

我们希望在Umbraco的DocumemtType中实现一个复选框[Type:true / false]。

我们目前的项目必要性是:

一个复选框,用于决定图片是链接还是弹出窗口

代码就这样......

    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 个答案:

答案 0 :(得分:1)

node.GetProperty(" popUp")是要走的路。如果你的控制值实际上是字符串,那么你的检查逻辑看起来像是

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

有效的通用GetProperty是你的代码所做的,但它处理null case,返回默认值(string)。

(我从未使用过动态的东西,如果出现问题,请输入var node = new Node(id);)

答案 1 :(得分:1)

由于您最近将该属性添加到文档类型,除非已发布该类型的每个节点,否则该属性将返回null。您需要首先检查属性是否为空,然后检查它是否为真。

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

答案 2 :(得分:1)

使用下面的代码,它对我来说很好用

var child= @Model;

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

答案 3 :(得分:0)

使用此:

var child = @Model;

if(child.GetPropertyValue<bool>("popUp", false))
  {
    // true means image will act as popup
  }
 else
  {
     // false means image will act as link
  }