JQuery中的MVC null ViewBag

Nat*_*Pet 2 asp.net-mvc c#-4.0 viewbag

我有一个没有价值的ViewBag.我甚至没有在我的控制器中定义ViewBag.SelectVale,所以我希望它是一个空值.

当我在JQuery中执行以下操作但不起作用时:

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

     // do something

     }
Run Code Online (Sandbox Code Playgroud)

相反的是:

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

     // do something

     }
Run Code Online (Sandbox Code Playgroud)

Str*_*ior 9

在.NET框架中null输出为空字符串,所以如果你看一下发送到浏览器的实际javascript,在第一种情况下会说:

if ('' == null)
Run Code Online (Sandbox Code Playgroud)

......在第二种情况下,它会说:

if ('' == "")
Run Code Online (Sandbox Code Playgroud)

大多数javascript程序员会告诉你只需将你的语句更改为:

if ('@ViewBag.SelectVale')
Run Code Online (Sandbox Code Playgroud)

...因为空字符串false在javascript中被视为布尔值时进行评估.

或者,因为这里似乎没有任何真正的动态发生,试试这个:

@if(ViewBag.SelectVale == null) {
    <text>
        // do something in javascript.
    </text>
}
Run Code Online (Sandbox Code Playgroud)

...这将避免甚至输出"做某事"javascript,因为你知道什么时候你正在渲染SelectVale为null的页面.