Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I compare a value from C# Viewbag in Javascript?

I want to compare a boolean value from the Viewbag in javascript. So at first I tried this:

if (@Viewbag.MyBoolValue)
    do_sth();

But then I have error in console like: Value False/True is not declared (not exactly).

So I tried this:

@{
    string myBool = ((bool)Viewbag.MyBoolValue) ? "true" : "false";
}

and in javascript:

if (@myBool == "true")
    do_sth();

But it does not work too. How can I make it work? Any help would be appreciated.

like image 465
Mateusz Rogulski Avatar asked Aug 31 '12 10:08

Mateusz Rogulski


3 Answers

What you have should work, assuming that the value from the ViewBag is of a type which javascript can understand.

Note however, that your first example most likely did not work because boolean values are lowercase in javascript and uppercase in C#. With that in mind, try this:

var myBoolValue = @ViewBag.MyBoolValue.ToString().ToLower();
if (myBoolValue)
    do_sth();
like image 155
Rory McCrossan Avatar answered Oct 10 '22 22:10

Rory McCrossan


The below will create a javascript vailable with value from viewbag

<script>
    var myBoolInJs = @Viewbag.MyBoolValue;
    if(myBoolInJs == true)
     do_sth();
</script>
like image 25
HatSoft Avatar answered Oct 10 '22 21:10

HatSoft


var myBoolVal = @((ViewBag.MyBoolValue ?? false).ToString().ToLower());

or

var myBoolVal = '@(ViewBag.MyBoolValue)'==='@true';

or

 var myBoolVal = @(Json.Encode(ViewBag.MyBoolValue ?? false));
like image 34
Elnaz Avatar answered Oct 10 '22 22:10

Elnaz