ApiController破坏JSON,抛出角度ng中继器错误
我的ApiController方法以以下格式返回JSON:ApiController破坏JSON,抛出角度ng中继器错误,json,angularjs,asp.net-apicontroller,Json,Angularjs,Asp.net Apicontroller,我的ApiController方法以以下格式返回JSON: "[{\"Category\":{\"CategoryType\":{\"Categories\":[{\"Client\":{\"Categories\":[{\"CategoryType\":{\"Categories\":[{\"Controls\":[],\"Risks\":[{\"Controls\":[],\"PCRMaps\":[],\"Id\":3,\"Title\":\"Risk with ID\",\"Descrip
"[{\"Category\":{\"CategoryType\":{\"Categories\":[{\"Client\":{\"Categories\":[{\"CategoryType\":{\"Categories\":[{\"Controls\":[],\"Risks\":[{\"Controls\":[],\"PCRMaps\":[],\"Id\":3,\"Title\":\"Risk with ID\",\"Description\":\"Test\",\"CategoryId\":80, etc etc
我有AngularJS代码来呈现这个JSON对象的下拉列表,如下所示:
<select ng-model="newRisk.ClientId" id="ddlClient" name="ddlClient">
<option></option>
<option ng-repeat="client in clients" value="{{client.Id}}">{{client.Name}}</option>
</select>
这是最后一行让我不舒服的-重复值“[”
以下是控制器代码。非常简单:
[HttpGet]
public string GetAll()
{
return JsonConvert.SerializeObject(clientRepo.GetAll(),
Formatting.Indented,
new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
}
在返回JSON对象之前,是否需要执行额外的格式化步骤
{
"entries": [{
"id": 1,
"name": "Partha",
"niceName": "Sonu"
}, {
"id": 2,
"name": "David",
"niceName": "Dav"
}]}
这种格式支持在ng repeat中显示数据
var data={"lists":angular.fromJson(response)};
$scope.items =data.lists;
看起来,
clients
不是一个对象,而是一个字符串(json)。也更喜欢对select.Hm使用而不是ng repeat。它应该是一个对象…riskFactory.getClients().success(函数(数据){$scope.clients=data;})。error(函数(数据){$scope.error=“加载客户端时发生错误!”+data.ExceptionMessage;});我将研究使用ng选项,看看这是否有帮助尝试console.log(data)
。通过执行$scope.clients=data
不能确保数据是对象。…)重复值:[“
似乎它试图重复JSON中的每个字符。我上面粘贴的JSON片段来自一个控制台.log(数据)调用。我同意似乎每个字符都在重复,我只是不知道如何解决这个问题。
var data={"lists":angular.fromJson(response)};
$scope.items =data.lists;