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

Posted

技术标签:

【中文标题】尝试将布尔 C# 变量传递给 javascript 变量并将其设置为 true【英文标题】:Trying to pass in a boolean C# variable to a javascript variable and set it to true 【发布时间】:2010-10-13 23:47:34 【问题描述】:

在我的 .aspx 页面中,我将布尔变量 (C#) 传递给需要布尔类型的 javascript 函数时遇到问题。

但 C# 变量返回 True,而 javascript 不喜欢大写。

myjavascript( <%= MyBooleanVariableInCSharp %> );

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

解决这个噩梦的方法是什么?哈哈

【问题讨论】:

【参考方案1】:

试试这个:

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

【讨论】:

有趣的是,我们必须进行非函数式转换来转换像 boolean 这样的简单类型,但它确实有效!谢谢 哇,多么愚蠢。必须将布尔值转换为字符串,然后将其降低以将其与 javascript 布尔值进行比较。它虽然有效。谢谢! 在没有 语法的情况下为我工作,但感谢您的建议。【参考方案2】:

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

var True = true, False = false;

然后你编码

myjavascript( <%= MyBooleanVariableInCSharp %> );

会工作得很好。

如果出于某种原因您不想使用变量,另一种选择是编写您的 javascript 调用,如下所示:

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

【讨论】:

好主意,虽然这最终会在页面上显示为myjavascript('True' == 'True'),这不需要使用变量。如果您想到了myjavascript(&lt;%= MyBooleanVariableInCSharp %&gt; == 'True'),则变量是必需的,但它永远不会评估为true。基于您的另一个想法:myjavascript('&lt;%= MyBooleanVariableInCSharp %&gt;' === '&lt;%= bool.TrueString %&gt;'). @Wynand 我编辑了我的答案以澄清我提供了两个单独的选项【参考方案3】:

您也可以这样做。

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

var myBoolInJavaScript = @Model.MyBoolInCSharp.ToString().ToLower(); 按预期工作。谢谢你的回答【参考方案5】:
function toBool(s) 
   return s==="True";


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

【讨论】:

以上是关于尝试将布尔 C# 变量传递给 javascript 变量并将其设置为 true的主要内容,如果未能解决你的问题,请参考以下文章

将 C# 数组传递给 Javascript

将列表字符串从 C# 传递到 JavaScript

如何将 JavaScript 变量传递给 jQuery ajax 请求

如何将javascript变量传递给数据库

将 Javascript 变量传递给 Django 标签

如何将 Django 变量传递给 Vue 道具