How do I send assign a List<string> to a JavaScript array or enumerable object
Asked Answered
G

1

12

I have the following :

ViewBag.SomeEnumerable = new List<string>() { "string1", "string2" };

Now how do I assign ViewBag.SomeEnumerable to an array or some form of enumerable object on the JavaScript side? e.g.:

function SomeFunction()
{
  var array = @ViewBag.SomeEnumerable;
  for(var eachItem in array)
  {
    alert(eachItem); // should display "string1" then string2"
  }
}
Gomes answered 12/9, 2012 at 9:9 Comment(0)
P
30
<script type="text/javascript">
function SomeFunction() {
    var array = @Html.Raw(Json.Encode(ViewBag.SomeEnumerable));
    for(var i = 0; i < array.length; i++) {
        alert(array[i]); // should display "string1" then string2"
    }
}
</script>

will be rendered as:

<script type="text/javascript">
function SomeFunction() {
    var array = ["string1","string2"];
    for(var i = 0; i < array.length; i++) {
        alert(array[i]); // should display "string1" then string2"
    }
}
</script>
Preclinical answered 12/9, 2012 at 9:13 Comment(2)
VS is giving syntax error at ; when i declare var array = @Html.Raw(Json.Encode(ViewBag.SomeEnumerable)); however o/p is correct in html rendered in browserKolivas
@IshaanPuniani, why do you even trust VS Intellisense? It is wrong. Look at the rendered markup to see that it is correct despite VS telling you it is wrong.Preclinical

© 2022 - 2024 — McMap. All rights reserved.