使用剃刀,我怎么渲染布尔的JavaScript变量?(Using Razor, how do I r

2019-07-18 11:59发布

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

目前这显示了一个语法错误:

<script type="text/javascript" >

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

Answer 1:

你也可以试试:

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

和以往更好的方法是使用:

isFollowing: @Json.Encode(Model.IsFollowing)


Answer 2:

该JSON布尔必须小写。

因此,试试这个(并确保n要具有//就行了评论):

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

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

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


Answer 3:

由于搜索把我带到这里:在ASP.NET核心, IJsonHelper没有一个Encode()方法。 相反,使用Serialize() 例如:

isFollowing: @Json.Serialize(Model.IsFollowing)    


Answer 4:

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

为什么True ,而不是true你问...问的好:
为什么Boolean.ToString输出“真”,而不是“真”



Answer 5:

这里还有一个值得考虑的选择,使用! 转换为Boolean。

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

这将产生在客户端执行以下操作,用1被转换成真实和0至假。

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


文章来源: Using Razor, how do I render a Boolean to a JavaScript variable?