我们希望在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"))
{
}
但仍然无法得到它。欢迎所有建议。
答案 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
}