为什么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只是使用ToString()
-方法。在bool
的情况下,它将计算为True
或False
。为了避免这个问题,只需自己小写:
@{
bool a = false;
}
<script>
var element = '<a href="www.testurl.com" + '?a.ToString().ToLower()=' + @(a)';
$('#anyElement').append(element);
</script>