2

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

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

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

     // do something

     }

取而代之的是:

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

     // do something

     }
4

1 回答 1

10

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

if ('' == null)

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

if ('' == "")

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

if ('@ViewBag.SelectVale')

...因为空字符串false在 javascript 中被视为布尔值时的计算结果。

或者,由于这里似乎没有发生任何真正动态的事情,试试这个:

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

...这甚至可以避免输出“做某事”javascript,因为您知道何时呈现 SelectVale 为空的页面。

于 2012-01-09T16:41:45.303 回答