Подтвердить что ты не робот

Пытаясь передать в логическую переменную С# переменной javascript и установить ее в true

Имея проблемы, где на моей странице .aspx я передаю логическую переменную (С#) в функцию javascript, которая ожидает булевский тип.

BUt переменная С# возвращает True, а javascript не нравится в верхнем регистре.

myjavascript( <%= MyBooleanVariableInCSharp %> );

Если я преобразую переменную С# в строку, тогда моя переменная javascript станет строкой, а не значением js bool!

Каково решение этого кошмара? лол

4b9b3361

Ответ 1

Попробуйте следующее:

myjavascript( <%= MyBooleanVariableInCSharp.ToString().ToLower() %> );

Ответ 2

если вам нужно это делать часто, просто добавьте это в начало javascript (или ваш файл библиотеки js и т.д.).

var True = true, False = false;

Затем вы кодируете

myjavascript( <%= MyBooleanVariableInCSharp %> );

Будет работать нормально.

Другой вариант, если по какой-либо причине вы не хотите использовать переменные, нужно написать свой javascript-вызов следующим образом:

myjavascript( '<%= MyBooleanVariableInCSharp %>'=='True' );

Ответ 3

Вы также можете это сделать.

myjavascript(<%=myBooleanVariableInCSharp ? "true" : "false" %>);

Ответ 4

Другие ответы нацелены на старую версию, перед Razor
если вы используете Razor, то это решение

myjavascript( @MyBooleanVariableInCSharp.ToString().ToLower() );

Ответ 5

У С# есть встроенный метод. По крайней мере, в .NET v4 и новее.

var myBoolean = <% = myBooleanFromCodeBehind.ToJs()% > ;

Ответ 6

function toBool(s){ 
   return s==="True";
}

var b = toBool("@csharpvariable.ToBoolean()");