尝试将布尔 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(<%= MyBooleanVariableInCSharp %> == 'True')
,则变量是必需的,但它永远不会评估为true
。基于您的另一个想法:myjavascript('<%= MyBooleanVariableInCSharp %>' === '<%= bool.TrueString %>')
.
@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的主要内容,如果未能解决你的问题,请参考以下文章