C#Web服务阵列无法由AngularJS处理



我写了一个返回JSON数组的Web服务。以下功能返回列表中的数据:

List<ValPair> result = _service.getAllGroupsTypes(P_ClientID);
        var jsonSerial = new JavaScriptSerializer();
        var jsonResult = jsonSerial.Serialize(result);
        return Json(jsonResult, JsonRequestBehavior.AllowGet);

客户端代码: $ scope.getAllGroups = function() {

    var Parameters = { "P_ClientID": 1 };
    $http.post("/SMS/getAllGroups", Parameters)
    .then(function success(response) {
        $scope.received = response.data;
        $scope.names = [{ "name": "G1", "value": "1" }] //Just for test purpose
    })
}

在客户端,batarang显示范围变量为:

received: [{"Key":"Default Group","Value":"1"}]
names: 
   [  { 
       name: G1
       value: 1
    }  ]

Angular正在处理$ scope.names中的NG-Repeat中的名称,其中未显示$ scope.received的任何结果。由于两者都是数组,因此"名称"是从db中检索的一个。

只需将您的代码更改为:

var Parameters = { "P_ClientID": 1 };
$http.post("/SMS/getAllGroups", Parameters)
.then(function success(response) {
    $scope.received = JSON.parse(response.data);
    $scope.names = [{ "name": "G1", "value": "1" }] //Just for test purpose
})

输出将是:

received: [
  {   Key:"Default Group",
      Value:"1"}
 ]
//
names: 
[  { 
   name: G1
   value: 1
 }  ]

最新更新