为什么RAZOR输出一个大写的布尔值?

本文关键字:布尔值 一个 输出 RAZOR 为什么 | 更新日期: 2023-09-27 18:03:44

@{
    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输出一个大写的布尔值?

Razor只是使用ToString() -方法。在bool的情况下,它将计算为TrueFalse。为了避免这个问题,只需自己小写:

@{
    bool a = false;
}    
<script>
var element = '<a href="www.testurl.com" + '?a.ToString().ToLower()=' +   @(a)';
$('#anyElement').append(element);
</script>