Javascript MVC ASP.NET простой, если условие не работает - PullRequest
1 голос
/ 21 июля 2011

У меня следующий код вида бритвы asp.net mvc, который, кажется, не работает:

@{ 
  bool Condition1=Model.SomeObject.Condition1;
  bool Condition2 = Model.SomeObject.Condition2;
}

if('@Condition1') {
    alert('hi condition1');
} else if ('@Condition2') {
    alert('hi condition2');
} else { 
    alert('hi condition3'); 
} 

Вот что не работает:

  1. когда Условие 2 истинно, javascript 'hi condition2' никогда не попадет под удар.

Я тоже попробовал с этим ниже и все еще не работает.

еще, если ('@ Condition2' == true) {

Мне не хватает здесь кастинга, пожалуйста?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 21 июля 2011

Попробуйте:

if(@(Condition1.ToString().ToLower())) {}

C # boolean - True, а js - true.

То, что у вас не будет работать, так как текст «false» в js считается «правдивым»значение (пустая строка - Falsey).

0 голосов
/ 21 июля 2011
if(@Condition1) {
    alert('hi condition1');
} else if (@Condition2) {
    alert('hi condition2');
} else { 
    alert('hi condition3'); 
} 
0 голосов
/ 21 июля 2011

Согласно вашему коду alert('hi condition2') должно работать только тогда, когда Condition1 == false и Condition2 == true.
Кроме того, вы не должны заключать @Condition1 и @Condition2 в кавычки '.Это bool, а не строка.
Дело в том, что в JavaScript любое условие с непустой строкой равно true.
Еще одна вещь: .NET bool преобразуется в строку как True илиFalse (в верхнем регистре).С другой стороны, значения JS bool равны true и false.
Так что попробуйте:

if (@(Condition.ToString().ToLower())) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...