Цикл в массиве объекта с использованием JavaScript - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть контроллер, который возвращает список objects в TempData

 public ActionResult timelineIndex()
    { 
        var jsondata = new
        {
            data = (
                from t in ptr.GetAll()
                select (new
                {
                    id = t.pptid,
                    Owner = t.Owner,
                    Duration = t.totaldays,
                    Comp = t.Status,
                    StartDate = t.StartDate,
                    EndDate = t.EndDate
                }).ToString())
           };
        TempData["id"] = jsondata.data.ToList();


        return View();
    }

Теперь, с моей точки зрения, я закодировал, используя @html.Raw(json.Encode)

var modeldata = @Html.Raw(Json.Encode(@TempData["id"])) ;

Я хочуцикл по всем объектам для этого я попробовал, но он показывает Undefined.

    console.log(modeldata);
    var array = [];
    array = modeldata;
  for (var i = 0 ; i<11 ; i++) {  
      var obj = modeldata[i];
      alert(obj.id);
      alert(obj.Startdate)
  }

в массиве modeldata объекта идет.

(11) ["{ id = 1, Owner = erewrwer, Duration = 7, Comp = e…w, StartDate = 2018-09-19, EndDate = 2018-09-26 }", "{ id = 2, Owner = erewrwer, Duration = 7, Comp = , StartDate = 2018-09-19, EndDate = 2018-09-26 }", "{ id = 3, Owner = erewrwer, Duration = 11, Comp = , StartDate = 2018-09-19, EndDate = 2018-09-30 }", "{ id = 4, Owner = erewrwer, Duration = 11, Comp = …z, StartDate = 2018-09-19, EndDate = 2018-09-30 }", "{ id = 5, Owner = erewrwer, Duration = 11, Comp = …z, StartDate = 2018-09-19, EndDate = 2018-09-30 }", "{ id = 6, Owner = erewrwer, Duration = 11, Comp = …z, StartDate = 2018-09-19, EndDate = 2018-09-30 }", "{ id = 7, Owner = erewrwer, Duration = 11, Comp = …S, StartDate = 2018-09-19, EndDate = 2018-09-30 }", "{ id = 8, Owner = erewrwer, Duration = 11, Comp = …S, StartDate = 2018-09-19, EndDate = 2018-09-30 }", "{ id = 9, Owner = erewrwer, Duration = 11, Comp = …E, StartDate = 2018-09-19, EndDate = 2018-09-30 }", "{ id = 10, Owner = erewrwer, Duration = -204, Comp…D, StartDate = 2018-11-30, EndDate = 2018-05-10 }", "{ id = 11, Owner = erewrwer, Duration = 6, Comp = …S, StartDate = 2018-09-24, EndDate = 2018-09-30 }"]

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Javascript - это все в порядке, вам нужно внести исправления из кода C #, и он будет работать нормально

 public ActionResult timelineIndex()
{ 
    var jsondata = new
    {
        data = (
            from t in ptr.GetAll()
            select (new
            {
                id = t.pptid,
                Owner = t.Owner,
                Duration = t.totaldays,
                Comp = t.Status,
                StartDate = t.StartDate,
                EndDate = t.EndDate
            }))
       };
    TempData["id"] = jsondata.data.ToList();


    return View();
}
0 голосов
/ 27 сентября 2018

Неверное форматирование данных.Это данные JSON.Вы должны конвертировать его через JSON.parse.Вот рабочий пример.Проверьте массив моделей.Форматирование данных должно выглядеть следующим образом.

let modelArray = [
  { id : 1, Owner : "erewrwer", Duration : 7, StartDate : "2018-09-19", EndDate : "2018-09-26" },
];

for (let i = 0; i < modelArray.length; i++) {
  let obj = modelArray[i];
  console.log('Object : ', obj);
  console.log("Id : ", obj.id);
  console.log("StartDate : ", obj.StartDate);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...