使用Razor,如何将布尔值呈现给JavaScript变量?

2020/11/12 23:22 · javascript ·  · 0评论

如何在CSHTML文件中的JavaScript变量中呈现布尔值?

目前,这显示出语法错误:

<script type="text/javascript" >

    var myViewModel = {
        isFollowing: @Model.IsFollowing  // This is a C# bool
    };
</script>

您可能还想尝试:

isFollowing: '@(Model.IsFollowing)' === '@true'

更好的方法是使用:

isFollowing: @Json.Encode(Model.IsFollowing)

因为搜索将我带到了这里:在ASP.NET Core中,IJsonHelper没有Encode()方法。而是使用Serialize()例如:

isFollowing: @Json.Serialize(Model.IsFollowing)    

JSON布尔值必须为小写。

因此,请尝试以下操作(并确保//在行上添加nto注释):

var myViewModel = {
    isFollowing: @Model.IsFollowing.ToString().ToLower()
};

或(注意:您需要使用命名空间System.Xml):

var myViewModel = {
    isFollowing: @XmlConvert.ToString(Model.IsFollowing)
};
var myViewModel = {
    isFollowing: '@(Model.IsFollowing)' == "True";
};

为什么Truetrue问...好问题:
为什么Boolean.ToString输出“ True”而不是“ true”

这是另一个可以考虑的选择,使用!! 转换为布尔值。

isFollowing: !!(@Model.IsFollowing ? 1 : 0)

这将在客户端生成以下内容,其中1转换为true,0转换为false。

isFollowing: !!(1)  -- or !!(0)

一个更容易阅读的解决方案是这样做:

isFollowing: @(Model.IsFollowing ? "true" : "false")
本文地址:http://javascript.askforanswer.com/shiyongrazorruhejiangbuerzhichengxiangeijavascriptbianliang.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!