【问题标题】:Why does RAZOR output a capitalized boolean value? [duplicate]为什么 RAZOR 输出一个大写的布尔值? [复制]
【发布时间】:2016-08-23 22:23:02
【问题描述】:
@{
    bool a = false;
 }    

<script>

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

</script>

锚标记将具有 www.testurl.com?a=False 的 href

至少在 IE11 中,变量 a 将呈现为 False 而不是 false。这会导致 ECMAScript 错误,因为现在 JavaScript/ECMAScript 编译器认为 False 是一个未定义的变量。

为什么 RAZOR 不以小写形式呈现这个变量?

【问题讨论】:

    标签: c# html .net asp.net-mvc razorengine


    【解决方案1】:

    Razor 只使用你放在那里的任何东西的ToString()-方法。在bool 的情况下,将评估为TrueFalse。为了规避这个问题,只需自己小写即可:

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

    【讨论】:

    • 我讨厌这种情况发生,但它确实有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2018-04-28
    • 2010-11-20
    • 2023-04-10
    • 2014-03-20
    • 1970-01-01
    相关资源
    最近更新 更多