JustForTest
JustForTest

Reputation: 21

Set Tuple of List to ViewData Mvc C#

I am adding some data in List of Tuple type like this in Razor view

   List<Tuple<int, int, string>> Downloadlist = new List<Tuple<int, int, string>>();

And adding items to this list

         Downloadlist.Add(new Tuple<int, int, string>(11, 7, "somedata"));

Now I would like to access the array of data in javascript

<script>

    var listofdownloadpages = '@ViewData["DownloadPages"]';
    if (listofdownloadpages != null) {

        alert(listofdownloadpages.length);

        for (var i = 0; i < listofdownloadpages.length; i++) {
            alert(listofdownloadpages[i].wishid + ' ' + listofdownloadpages[i].remain);
        }
    }
    else {
        alert("not found anything");

    }

But this not giving me the items in correct way please help.

Upvotes: 1

Views: 784

Answers (1)

Arjun Prakash
Arjun Prakash

Reputation: 691

This will work

Controller

 public ActionResult Test()
        {
            List<Tuple<int, int, string>> Downloadlist = new List<Tuple<int, int, string>>();
            Downloadlist.Add(new Tuple<int, int, string>(11, 7, "somedata"));

            ViewData["DownloadPages"] = Downloadlist;
            return View();
        }

View & JS

   <script>
        var listofdownloadpages =  @Html.Raw(Json.Encode(@ViewBag.DownloadPages));
        if (listofdownloadpages != null) {

            alert(listofdownloadpages.length);

            for (var i = 0; i < listofdownloadpages.length; i++) {
                alert(listofdownloadpages[i].Item1 + ' ' + listofdownloadpages[i].Item2);
            }
        }
        else {
            alert("not found anything");

        }
</script>

Upvotes: 1

Related Questions