2013-05-27 49 views
1

我們希望在Umbraco的DocumemtType中實現一個複選框[Type:true/false]。在Umbraco中輸入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")) 
      { 

      } 

,但仍然沒能得到它。所有建議都歡迎。

回答

1

用下面的代碼,它爲我工作得很好

var child= @Model; 

if(@child.popUp) 
    { 
    // true means image will act as popup 
    } 
else 
    { 
    // false means image will act as link 
    } 
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 
    } 
+0

不能鍵入「串」隱式轉換爲「布爾」是,當我用你的代碼的Martijn麪包車明鏡,我收到錯誤-放 –

1

node.GetProperty(「popUp」)是要走的路。如果你的控制值實際上是字符串,那麼你的檢查邏輯看起來像

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

有效地通用的getProperty是你的代碼做什麼,但它處理空的情況下,返回默認值(字符串)。

(我從來沒有使用動態的東西,萬一事情會出問題那裏,做類型化的VAR節點=新節點(ID);)

1

由於您最近添加的屬性的文檔類型,除非該類型的每個節點都已發佈,該屬性將返回null。你需要先檢查屬性是否爲空,然後檢查它是否爲真。

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