2012-01-09 40 views
2

我有一個沒有價值的ViewBag。我甚至沒有在我的控制器中定義ViewBag.SelectVale ,所以我期望它是一個空值。MVC null JQuery中的ViewBag

當我做在JQuery中以下但不工作:

if ('@ViewBag.SelectVale' == null){ 

    // do something 

    } 

什麼工作反而是這樣的:

if ('@ViewBag.SelectVale' == ""){ 

    // do something 

    } 
+1

但是,你把剃鬚刀評價引用...在JavaScript中(順便說一句,你在做你的比較)。如果你看看你的剃鬚刀視圖產生的HTML,它應該是顯而易見的... – 2012-01-09 16:43:00

回答

9

在.NET Framework null獲取輸出爲空字符串,所以如果你看看發送給瀏覽器的實際javascript,在第一種情況下,它會說:

if ('' == null) 

...而在第二種情況下,它會說:

if ('' == "") 

大多數JavaScript程序員會告訴你只是改變你的語句:

if ('@ViewBag.SelectVale') 

...因爲空字符串評估爲false當他們被視爲在JavaScript中的布爾值。

或者,因爲似乎沒有是什麼真正的動態發生在這裏,試試這個:

@if(ViewBag.SelectVale == null) { 
    <text> 
     // do something in javascript. 
    </text> 
} 

...這將避免甚至輸出「有所作爲」的JavaScript,因爲你知道,當你呈現SelectVale爲空的頁面。