Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing a boolean value in my .net MVC view to a javascript, but JS doesn't accept True, wants true

I am passing a boolean value to a javascript function in my .net mvc action page.

problem is, it is outputting the value True and javascript apparently only accepts 'true' (in lower case).

I don't want to hack the variable and make it a string and convert it to lower case in my action, but it looks like I have no choice?

like image 591
mrblah Avatar asked Mar 17 '09 11:03

mrblah


1 Answers

If you're using the ToString() method on a .NET boolean to send the value to Javascript, try replacing it with something like

(myBoolean ? "true" : "false")

so that it gets sent to Javascript as the appropriate string representation of the required bool value.

EDIT: Note the difference between:

<script type="text/javascript">
var myBoolean = <%= (myBoolean ? "true" : "false") %>;
</script>

and

<script type="text/javascript">
var myBoolean = '<%= (myBoolean ? "true" : "false") %>';
</script>

In the first example, you end up with:

var myBoolean = false;

and that's a literal Boolean false. In the second, you end up with:

var myBoolean = 'false';

and in JavaScript, 'false' is a non-empty string and consequently if evaluated in a Boolean context, it'll be true. Well, true-ish. :)

like image 79
Dylan Beattie Avatar answered Oct 06 '22 00:10

Dylan Beattie