MVC null ViewBag в JQuery - PullRequest
       24

MVC null ViewBag в JQuery

2 голосов
/ 09 января 2012

У меня есть ViewBag, который не имеет значения. Я даже не определяю ViewBag.SelectVale в моем контроллере, так что я ожидаю, что это будет нулевое значение.

Когда я делаю следующее в JQuery, но не работает:

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

     // do something

     }

Вместо этого работает что-то вроде:

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

     // do something

     }

1 Ответ

9 голосов
/ 09 января 2012

В .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 равно null.

...