为什么 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 的情况下,它将计算为 TrueFalse。绕过这个问题,自己小写就行了:

@{
    bool a = false;
}    

<script>

var element = '<a href="www.testurl.com" + '?a.ToString().ToLower()=' +   @(a)';
$('#anyElement').append(element);

</script>