尝试将布尔C#变量传递给javascript变量并将其设置为true

mrb*_*lah 60 javascript c#

我的.aspx页面中存在问题,我将布尔变量(C#)传递给期望布尔类型的javascript函数.

BUt C#变量返回True,而javascript不喜欢大写.

myjavascript( <%= MyBooleanVariableInCSharp %> );
Run Code Online (Sandbox Code Playgroud)

如果我将c#变量转换为字符串,那么我的javascript变量变为字符串而不是js bool值!

这场噩梦的解决方案是什么?大声笑

And*_*are 95

试试这个:

myjavascript( <%= MyBooleanVariableInCSharp.ToString().ToLower() %> );
Run Code Online (Sandbox Code Playgroud)

  • +1.我正在使用`.ToLowerInvariant()`. (4认同)
  • 有趣的是,我们必须进行如此非函数式的转换才能转换像 boolean 这样的简单类型,但它确实有效!谢谢 (2认同)

men*_*del 20

如果你需要经常这样做,只需将它添加到javascript(或你的js库文件等)的顶部

var True = true, False = false;
Run Code Online (Sandbox Code Playgroud)

然后你编码

myjavascript( <%= MyBooleanVariableInCSharp %> );
Run Code Online (Sandbox Code Playgroud)

会工作得很好.

如果出于任何原因你不想使用变量的另一个选择是编写你的javascript调用,如下所示:

myjavascript( '<%= MyBooleanVariableInCSharp %>'=='True' );
Run Code Online (Sandbox Code Playgroud)


Chr*_*kes 9

你也可以这样做.

myjavascript(<%=myBooleanVariableInCSharp ? "true" : "false" %>);
Run Code Online (Sandbox Code Playgroud)


Hak*_*tık 6

其他答案针对旧版本,在Razor 之前,
如果您使用Razor,那么这就是解决方案

myjavascript( @MyBooleanVariableInCSharp.ToString().ToLower() );
Run Code Online (Sandbox Code Playgroud)