【问题标题】:How to pass a bool to a JavaScript function from code behind?如何从后面的代码将布尔值传递给 JavaScript 函数?
【发布时间】:2013-11-20 17:45:48
【问题描述】:

我有一个 JavaScript 函数如下:

function A(bNeed)
{
    if (bNeed){
        ...
    }
    else{
        ...
    }
}

在我后面的代码中,在Page_Load,我有

bool bNeed = File.Exists(...);
btn.Attributes.Add("onclick", string.Format("return A('{0}');", bNeed));

但它似乎无法正常工作。谁能告诉我怎么了?

【问题讨论】:

    标签: c# javascript asp.net webforms boolean


    【解决方案1】:

    您将大写的 'True''False' 作为带引号的字符串传递,但 JavaScript 布尔文字是小写的 truefalse,不带引号。将其更改为:

    btn.Attributes.Add("onclick", string.Format("return A({0});", bNeed ? "true" : "false");
    

    (如果您愿意,可以写成bNeed.ToString().ToLowerInvariant() 而不是bNeed ? "true" : "false",因为Boolean.ToString() 返回"True""False"。)

    【讨论】:

    • 我推荐bNeed ? "true" : "false"而不是bNeed.ToString().ToLower()
    • @LeastOne -- 错字:ToLower()。打算推荐同样的东西。
    • @JeremyJStarcher 您从未使用过.ToLoser() 方法,嗯?我想.ToLower() 更合适:)
    • @LeastOne @Jeremy: ToLower()(理论上)是文化敏感的。 ToLowerInvariant() 会更合适。
    • @LeastOne 在法语中它被称为“lapsus”:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2013-09-23
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 2014-09-26
    相关资源
    最近更新 更多