JavaScript, если оператор не будет выполнять MVC3 / бритву - PullRequest
0 голосов
/ 14 октября 2011

У меня есть следующий код:

<script type="text/javascript">
    if ('@(Model.DidPass)' == 'True') {
        alert('Blah Blah True');
    }
    else {
        alert('Blah blah false');
    }
</script>

в Fiddler. Я вижу, что мои операторы if отображаются в браузере как:

if ('True' == 'True')

, но по какой-то причине это предупреждение ('Бла-бла-бла, правда ') не выполнитЕсли я перешагиваю код в VS, я могу наблюдать, как он доходит до оператора if, а затем просто ошибаться.Есть мысли?

Ответы [ 4 ]

7 голосов
/ 14 октября 2011

Вам нужно будет перейти с кода на html, вот так. В противном случае компилятор примет, что alert является вызовом метода c # (а это не так), и вы получите ошибку компилятора при попытке его использовать.

<script type="text/javascript">
    @if(Model.DidPass){
        @:alert('Blah Blah True');
    } else {
        @:alert('Blah blah false');
    }
</script>

В качестве альтернативы вы можете использовать элемент psuedo <text></text>, если ваш javascript занимает более одной строки. @: предназначен только для текста, следующего до новой строки.

2 голосов
/ 14 октября 2011

Вы пробовали:

    if (Boolean('@(Model.DidPass)') == true) {
        alert('Blah Blah True');
    }
    else {
        alert('Blah blah false');
    }
1 голос
/ 14 октября 2011

Э-э ... это не то, как я бы это сделал, но, поскольку ты собираешься сделать это таким образом, почему бы тебе просто не сделать:

<script type="text/javascript">
   alert('@(Model.DidPass ? "blahblahblah true" : "blahlbahlbah false")');
</script>

edit: исправлен код путем его возврата в троицу ..

0 голосов
/ 14 октября 2011

Попробуйте === вместо этого, может быть?

Никогда не использовал этот материал MVC3 / бритва (или даже не знаю, что это), так что это всего лишь предположение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...