Der Versuch, eine boolesche C#-Variable an eine Javascript-Variable zu übergeben und auf „true“ zu setzen

Lesezeit: 2 Minuten

Probleme haben, wo ich auf meiner .aspx-Seite eine boolesche Variable (C#) an eine Javascript-Funktion übergebe, die einen booleschen Typ erwartet.

ABER die C#-Variable gibt True zurück, und Javascript mag Großbuchstaben nicht.

myjavascript( <%= MyBooleanVariableInCSharp %> );

Wenn ich die c#-Variable in einen String umwandle, wird meine Javascript-Variable zu einem String und nicht zu einem js-Bool-Wert!

Was ist die Lösung für diesen Albtraum? lol

Versuche dies:

myjavascript( <%= MyBooleanVariableInCSharp.ToString().ToLower() %> );

  • Es ist lustig, dass wir eine so nicht funktionale Konvertierung durchführen müssen, um einen einfachen Typ wie boolean umzuwandeln, aber es funktioniert! Danke

    – Samuel

    3. August 2012 um 1:02 Uhr

  • Wow, wie dumm. Einen booleschen Wert in eine Zeichenfolge umwandeln und ihn dann niedriger machen müssen, um ihn mit einem booleschen JavaScript-Wert zu vergleichen. Es funktioniert aber. Vielen Dank!

    – Ich bin Batman

    15. Januar 2019 um 17:55 Uhr

  • funktionierte ohne <%= %> Syntax für mich, aber danke für den Vorschlag.

    – knigalye

    13. März 2019 um 17:59 Uhr

Benutzer-Avatar
Mendel

Wenn Sie dies häufig tun müssen, fügen Sie dies einfach oben im Javascript (oder Ihrer js-Bibliotheksdatei usw.) hinzu.

var True = true, False = false;

Dann codieren Sie

myjavascript( <%= MyBooleanVariableInCSharp %> );

Würde gut funktionieren.

Eine andere Möglichkeit, wenn Sie die Variablen aus irgendeinem Grund nicht verwenden möchten, besteht darin, Ihren Javascript-Aufruf wie folgt zu schreiben:

myjavascript( '<%= MyBooleanVariableInCSharp %>'=='True' );

  • Gute Idee, obwohl dies auf der Seite als enden wird myjavascript('True' == 'True'), die keine Verwendung von Variablen erfordert. Wenn du hättest myjavascript(<%= MyBooleanVariableInCSharp %> == 'True') Beachten Sie, dass die Variablen erforderlich sind, aber niemals ausgewertet werden true. Eine andere Idee, die auf deiner basiert: myjavascript('<%= MyBooleanVariableInCSharp %>' === '<%= bool.TrueString %>').

    – WynandB

    19. September 2013 um 1:49 Uhr

  • @Wynand Ich habe meine Antwort bearbeitet, um zu verdeutlichen, dass ich zwei separate Optionen anbiete

    – mendel

    22. September 2013 um 3:07 Uhr

Das könntest du auch machen.

myjavascript(<%=myBooleanVariableInCSharp ? "true" : "false" %>);

Benutzer-Avatar
Hakan Faustik

Die anderen Antworten zielen auf die alte Version ab Rasierer

wenn Sie verwenden Rasierer dann ist das die lösung

myjavascript( @MyBooleanVariableInCSharp.ToString().ToLower() );

function toBool(s){ 
   return s==="True";
}

var b = toBool("@csharpvariable.ToBoolean()");

1051190cookie-checkDer Versuch, eine boolesche C#-Variable an eine Javascript-Variable zu übergeben und auf „true“ zu setzen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy