Comment rendre un booléen en une variable JavaScript dans un fichier cshtml?
Actuellement, cela montre une erreur de syntaxe:
<script type="text/javascript" >
var myViewModel = {
isFollowing: @Model.IsFollowing // This is a C# bool
};
</script>
Vous voudrez peut-être aussi essayer:
isFollowing: '@(Model.IsFollowing)' === '@true'
et un moyen toujours meilleur consiste à utiliser:
isFollowing: @Json.Encode(Model.IsFollowing)
Le booléen JSON doit être en minuscule.
Par conséquent, essayez ceci (et assurez-vous de ne pas avoir le commentaire //
Sur la ligne):
var myViewModel = {
isFollowing: @Model.IsFollowing.ToString().ToLower()
};
Ou (note: vous devez utiliser l'espace de noms System.Xml
):
var myViewModel = {
isFollowing: @XmlConvert.ToString(Model.IsFollowing)
};
Parce qu'une recherche m'a amené ici: dans ASP.NET Core, IJsonHelper
n'a pas de méthode Encode()
. Au lieu de cela, utilisez Serialize()
. Par exemple.:
isFollowing: @Json.Serialize(Model.IsFollowing)
var myViewModel = {
isFollowing: '@(Model.IsFollowing)' == "True";
};
Pourquoi True
et pas true
vous demandez ... Bonne question:
Pourquoi Boolean.ToString génère-t-il les réponses "True" et non "true"
Voici une autre option à considérer, en utilisant le !! conversion en booléen.
isFollowing: !!(@Model.IsFollowing ? 1 : 0)
Cela générera ce qui suit du côté client, 1 étant converti en vrai et 0 en faux.
isFollowing: !!(1) -- or !!(0)
Une solution plus facile à lire serait la suivante:
isFollowing: @(Model.IsFollowing ? "true" : "false")