2017-09-13 5 views
1

私のAngular appでMVCプロジェクトからdouble/2次元配列を返すと、単一の配列しか返されません。 MVCコントローラーからAngularアプリケーションにdouble配列を戻すにはどうすればよいですか?角度、httpリターンdouble int配列

function getStatusView() { 

    dataFactory.getStatusView() 
     .then(function (response) { 
      $scope.statusview = response.data.StatusViewList; 
      $scope.modelList = response.data.ModelList; 
      $scope.modelClustersList = response.data.ModelCLustersList; 
      $scope.turbineNumberDistinct = response.data.TurbineNumbersDistinct; 
      $scope.alarmArray = response.data.statusArray; 

      }, function (error) { 
      $scope.status = 'Unable to load customer data: ' + error.message; 
     }); 
} 



    [HttpGet] 
    public JsonResult GetStatusView() 
    { 
     model.statusArray = new int[model.ModelList.Count, model.StatusViewList.Count]; 

     var statuslinesWithAlarm = statusView.Where(p => p.AlarmLevel> 0).ToList(); 

     foreach (var statuslineWithAlarm in statuslinesWithAlarm) 
     { 
      var turbineIndex = model.StatusViewList.Select(p => p.TurbineNumber).ToList().IndexOf(statuslineWithAlarm.TurbineNumber); 
      var modelIndex = model.ModelList.IndexOf(statuslineWithAlarm.ModelName); 

      model.statusArray[modelIndex,turbineIndex] = 1; 

     } 
     return Json(model, JsonRequestBehavior.AllowGet); 
    } 

答えて

0

Javascriptでは、このような2次元配列についてはわかりません。そのため、デシリアライズ後に期待した結果が得られません。代わりに、モデルを配列の配列として宣言します。ような何か:

var model = new int[][] { new [] { ... }, new [] { ... }, new [] { ... } } 

Json.Netは正しく配列の配列に複数の次元配列をシリアライズすることによって、この問題を克服:

JsonConvert.SerializeObject(model); 
+0

あなたは素晴らしいです!ありがとうございました! – NatJJ