我将一个布尔值传递给我的.net mvc操作页面中的javascript函数.
问题是,它输出值True,javascript显然只接受'true'(小写).
我不想破解变量并将其变为字符串并在我的操作中将其转换为小写,但看起来我没有选择?
如果您在.NET布尔值上使用ToString()方法将值发送到Javascript,请尝试将其替换为类似
(myBoolean ? "true" : "false")
这样它就会被发送到Javascript,作为所需bool值的相应字符串表示.
编辑:注意区别:
和
在第一个示例中,您最终得到:
var myBoolean = false;
这是一个文字布尔值false.在第二个,你最终得到:
var myBoolean = 'false';
在JavaScript中,'false'是一个非空字符串,因此如果在布尔上下文中进行求值,它将是真的.嗯,真实的.:)
我创建了一个扩展方法,在模型的任何布尔属性中使用它.
public static class GeneralExtensions { public static string GetValueForJS(this bool argValue) { return argValue ? "true" : "false"; } }
现在在视图中我可以简单地使用: