Javascript 如何将json数据从C#控制器传递到angular js?

Javascript 如何将json数据从C#控制器传递到angular js?,javascript,c#,json,asp.net-mvc,angularjs,Javascript,C#,Json,Asp.net Mvc,Angularjs,如何将json数据从C#控制器传递到angular js?我想把json从控制器传递给angular js。我尝试了不同的方法,但没有一个奏效。请参阅下面的代码 var app = angular.module('myApp', []); app.controller('customersCtrl', function ($scope, $http) { $http.get("/adnActions/getJson") .success(function (response) {

如何将json数据从C#控制器传递到angular js?我想把json从控制器传递给angular js。我尝试了不同的方法,但没有一个奏效。请参阅下面的代码

var app = angular.module('myApp', []);
app.controller('customersCtrl', function ($scope, $http) {
    $http.get("/adnActions/getJson")
    .success(function (response) { alert(response.records); $scope.names = response.records; });
});
C#控制器代码

 public async Task<string> getJson()
    {
                 data="{'records':[ {'Name':'Alfreds Futterkiste','City':'Berlin','Country':'Germany'}, {'Name':'Ana Trujillo Emparedados y helados','City':'México D.F.','Country':'Mexico'}]}";
       return data;    

    }
公共异步任务getJson() { 数据=“{'records':[{'Name':'Alfreds Futterkiste','City':'Berlin','Country':'Germany'},{'Name':'Ana Trujillo Emparedados y helados','City':'México D.F.,'Country':'Mexico D.F.,'Country':'Mexico'}”; 返回数据; } 但是我无法在angular js控制器中获取数据 下面是console中引发的错误, 错误:JSON.parse:JSON数据的第1行第2列处应为属性名或“}”


如何解决此问题?这里的问题是什么?

使用EF创建json对象,并使用web api控制器获取(选择)、放置(更新)、发布(插入)、删除(删除)数据

公共类汽车控制器:ApiController
{
私人静态只读iCarrespository_cars=新Carrespository();
//获取api/
公共IEnumerable Get()
{
返回汽车。获取所有汽车();
}
//获取api//5
公共车辆获取(int id)
{
carc=\u cars.GetCar(id);
如果(c==null)
抛出新的HttpResponseException(HttpStatusCode.NotFound);
返回c;
}
//后api/
公共汽车站(小汽车)
{
返回车。添加车(车);
}
//放置api//5
公共汽车(小汽车)
{
如果(!\u车。更新(车))
抛出新的HttpResponseException(HttpStatusCode.NotFound);
返回车;
}
//删除api//5
公共车辆删除(int id)
{
carc=\u cars.GetCar(id);
_车辆。移除(id);
返回c;
}
} 
}

我怀疑这是因为JSON的格式。您使用的是单引号,而不是双引号。有效的JSON使用的是双引号

这是我运行json时得到的结果,我已将响应更改为HttpResponseMessage,并显式设置响应内容类型以消除这一问题。基于Javascript方面的错误,我认为您的问题在于json中的单引号

    public async Task<HttpResponseMessage> GetJsonSingle()
    {
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new StringContent("{'records':[ {'Name':'Alfreds Futterkiste','City':'Berlin','Country':'Germany'}, {'Name':'Ana Trujillo Emparedados y helados','City':'México D.F.','Country':'Mexico'}]}")
        };

        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

        return result;
        }
public异步任务GetJsonSingle()
{
HttpResponseMessage结果=新的HttpResponseMessage(HttpStatusCode.OK)
{
Content=newstringcontent(“{'records':'Alfreds Futterkiste','City':'Berlin','Country':'dermany'},{'Name':'Ana Trujillo Emparedados y helados','City':'México D.F.,'Country':'Mexico'}”)
};
result.Content.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/json”);
返回结果;
}
结果:

而双引号:

     public async Task<HttpResponseMessage> GetJsonDouble()
    {
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new StringContent("{\"records\":[ {\"Name\":\"Alfreds Futterkiste\",\"City\":\"Berlin\",\"Country\":\"Germany\"}, {\"Name\":\"Ana Trujillo Emparedados y helados\",\"City\":\"México D.F.\",\"Country\":\"Mexico\"}]}")
        };

        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

        return result;
    }
public异步任务GetJsonDouble()
{
HttpResponseMessage结果=新的HttpResponseMessage(HttpStatusCode.OK)
{
Content=newstringcontent(“{”记录\“:[{”姓名\“:“阿尔弗雷德·富特基斯特\“,”城市\“:“柏林\“,”国家\“:”德国\“,{”姓名\“:“安娜·特鲁希略·恩帕雷达多斯和希拉多斯\“,”城市\“:”墨西哥\“,”国家\“:”墨西哥\”)
};
result.Content.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/json”);
返回结果;
}
工作正常:


我想知道,由于您的方法被标记为async,但您没有等待,所以正在序列化的对象是否就是Task.ToString()而不是你预期的JSON负载。你能做一个网络捕获,看看你的服务在浏览器上的实际响应是什么吗?这可能会揭示问题。在这里猜测,但是你的API返回什么内容类型?Angular获取它需要是application/JSON吗?它应该是JSON格式,这样我才能给出返回的内容类型我的角度变量的值。($scope.names)
     public async Task<HttpResponseMessage> GetJsonDouble()
    {
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new StringContent("{\"records\":[ {\"Name\":\"Alfreds Futterkiste\",\"City\":\"Berlin\",\"Country\":\"Germany\"}, {\"Name\":\"Ana Trujillo Emparedados y helados\",\"City\":\"México D.F.\",\"Country\":\"Mexico\"}]}")
        };

        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

        return result;
    }