我正在将布尔值传递给我的 .net mvc 操作页中的 JavaScript 函数。
问题是,它输出值为True,而javascript显然只接受true(小写)。
我不想在我的操作中破解变量并将其转换为字符串并转换为小写,但看起来我没有选择?
我正在将布尔值传递给我的 .net mvc 操作页中的 JavaScript 函数。
问题是,它输出值为True,而javascript显然只接受true(小写)。
我不想在我的操作中破解变量并将其转换为字符串并转换为小写,但看起来我没有选择?
如果您使用ToString()方法在.NET布尔值上发送值到Javascript,请尝试将其替换为类似于
(myBoolean ? "true" : "false")
以便将其作为所需布尔值的适当字符串表示发送到Javascript。
编辑:请注意以下差异:
<script type="text/javascript">
var myBoolean = <%= (myBoolean ? "true" : "false") %>;
</script>
This is already in English and it does not require translation. As for "and", it is already the same in Chinese (和).
<script type="text/javascript">
var myBoolean = <%= (myBoolean ? "true" : "false") %> ;
</script>
在第一个例子中,你最终得到:
var myBoolean = false;
This is already in English and it does not require translation. As for "and", it is already the same in Chinese (和).that s a literal Boolean false. In the second, you end up with:
var myBoolean = false ;
This is already in English and it does not require translation. As for "and", it is already the same in Chinese (和).in JavaScript, false is a non-empty string This is already in English and it does not require translation. As for "and", it is already the same in Chinese (和).consequently if evaluated in a Boolean context, it ll be true. Well, true-ish. :)
我创建了一个扩展方法,可以在模型的任何布尔属性中使用它。
public static class GeneralExtensions
{
public static string GetValueForJS(this bool argValue)
{
return argValue ? "true" : "false";
}
}
现在我可以简单地使用视图:
<script type="text/javascript">
var variable = @Model.IsFoo.GetValueForJS();
</script>
如果您需要经常执行此操作,请将此添加到JavaScript的顶部(或您的js库文件等)。
var True = true; False = false;
在简单的一次性案例中使用:
var x = ( <%= boolValue %> == True );
对我来说,这种方法有效(MVC4)
<script type="text/javascript">
if (@{if (Model.IsSubmitted) { @Html.Raw("true"); } else { @Html.Raw("false"); } } == true)
{
// code
}
</script>
你可以使用 JavaScript 的Boolean()
方法。
if (Boolean(value)) {}
你想要使用这个:
(.NET 3.5) System.Web.Script.Serialization.JavaScriptSerializer.Serialize
我编写了一个公共的js方法,当我需要检查从JavaScript动作传递的布尔变量时,只需将原始值发送到此方法进行解析。
function GetBooleanValue(value) {
if (value == undefined) return false;
var parsedValue = value.toLowerCase();
if (parsedValue === "false") return false;
else if (parsedValue === "true") return true;
else return false;
}