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)
JSONブール値は小文字でなければなりません。
したがって、これを試してください(そして、行に//
コメントがあることを確認してください):
var myViewModel = {
isFollowing: @Model.IsFollowing.ToString().ToLower()
};
または(注:名前空間System.Xml
を使用する必要があります):
var myViewModel = {
isFollowing: @XmlConvert.ToString(Model.IsFollowing)
};
ASP.NET Coreでは、IJsonHelper
にはEncode()
メソッドがありません。代わりに、Serialize()
を使用してください。例えば。:
isFollowing: @Json.Serialize(Model.IsFollowing)
var myViewModel = {
isFollowing: '@(Model.IsFollowing)' == "True";
};
True
ではなくtrue
である理由...良い質問:
Boolean.ToStringが「true」ではなく「True」を出力する理由
!!を使用して、考慮する別のオプションを次に示します。ブール値への変換。
isFollowing: !!(@Model.IsFollowing ? 1 : 0)
これにより、クライアント側で次が生成されます。1はtrueに、0はfalseに変換されます。
isFollowing: !!(1) -- or !!(0)
読みやすい解決策はこれを行うことです:
isFollowing: @(Model.IsFollowing ? "true" : "false")