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

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

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

myjavascript( <%= MyBooleanVariableInCSharp %> );

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

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

【问题讨论】:

    标签: c# javascript


    【解决方案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()");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-09
        相关资源
        最近更新 更多