为什么 RAZOR 输出一个大写的布尔值?
Why does RAZOR output a capitalized boolean value?
@{
bool a = false;
}
<script>
var element = '<a href="www.testurl.com" + '?a=' + @(a)';
$('#anyElement').append(element);
</script>
锚标签的 href 为 www.testurl.com?a=False
至少在 IE11 中,变量 a 将呈现为 False 而不是 false。这会导致 ECMAScript 错误,因为现在 JavaScript/ECMAScript 编译器认为 False 是一个未定义的变量。
为什么 RAZOR 不以小写形式呈现此变量?
Razor 只使用 ToString()
-方法,无论你放在那里。在 bool
的情况下,它将计算为 True
或 False
。绕过这个问题,自己小写就行了:
@{
bool a = false;
}
<script>
var element = '<a href="www.testurl.com" + '?a.ToString().ToLower()=' + @(a)';
$('#anyElement').append(element);
</script>
@{
bool a = false;
}
<script>
var element = '<a href="www.testurl.com" + '?a=' + @(a)';
$('#anyElement').append(element);
</script>
锚标签的 href 为 www.testurl.com?a=False
至少在 IE11 中,变量 a 将呈现为 False 而不是 false。这会导致 ECMAScript 错误,因为现在 JavaScript/ECMAScript 编译器认为 False 是一个未定义的变量。
为什么 RAZOR 不以小写形式呈现此变量?
Razor 只使用 ToString()
-方法,无论你放在那里。在 bool
的情况下,它将计算为 True
或 False
。绕过这个问题,自己小写就行了:
@{
bool a = false;
}
<script>
var element = '<a href="www.testurl.com" + '?a.ToString().ToLower()=' + @(a)';
$('#anyElement').append(element);
</script>