En essayant de passer dans un booléen en C# une variable à une variable javascript et attribuez la valeur true
D'avoir des problèmes où à mon .page aspx, je passe dans une variable booléenne (C#) pour une fonction javascript qui s'attend à un type booléen.
Mais le C# variable renvoie la valeur True, et le javascript n'aime pas les majuscules.
myjavascript( <%= MyBooleanVariableInCSharp %> );
Si je convertir le c# variable de chaîne de caractères, puis ma variable javascript devient une chaîne et non un js bool valeur!
quelle est la solution à ce cauchemar? lol
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
.ToLowerInvariant()
.si vous avez besoin de le faire souvent, il suffit d'ajouter ce à le haut du javascript (ou votre bibliothèque js fichiers, etc.)
Alors vous code
Serait très bien fonctionner.
Une autre option, si pour quelque raison vous ne souhaitez pas utiliser les variables est d'écrire votre appel javascript comme ceci:
myjavascript('True' == 'True')
, qui ne nécessitent pas l'utilisation de variables. Si vous aviezmyjavascript(<%= MyBooleanVariableInCSharp %> == 'True')
à l'esprit, les variables sont nécessaires, mais il ne sera jamais à évaluer àtrue
. Une autre idée basée sur le vôtre:myjavascript('<%= MyBooleanVariableInCSharp %>' === '<%= bool.TrueString %>')
.Vous pourriez aussi le faire.
Autres réponses sont ciblage de l'ancienne version, avant Rasoir
si vous utilisez Rasoir puis c'est la solution
var myBoolInJavaScript = @Model.MyBoolInCSharp.ToString().ToLower();
a fonctionné comme prévu. Merci pour cette réponseC# est une méthode intégrée pour elle. Au moins dans .NET v4 et plus récent.var myBoolean = <%= myBooleanFromCodeBehind.ToJs() %>;