Javascript 从MVC JsonResult获取数据

Javascript 从MVC JsonResult获取数据,javascript,angularjs,asp.net-mvc,ngresource,angularjs-resource,Javascript,Angularjs,Asp.net Mvc,Ngresource,Angularjs Resource,我的MVC控制器中有以下操作: [HttpPost] public JsonResult Save(TestModel model) { var newId = _myService.CreateItem(model); return Json(newId); } 它运行并返回一个ID,我看到它在Fiddler中返回,例如42。但是我的角度代码没有得到数字,但是返回的值显示为data:b,它包含一个承诺。是否有方法获取成功方法的数据中返回的数字?我的角度代码如下: vm.sav

我的MVC控制器中有以下操作:

[HttpPost]
public JsonResult Save(TestModel model)
{
    var newId = _myService.CreateItem(model);
    return Json(newId);
}
它运行并返回一个ID,我看到它在Fiddler中返回,例如42。但是我的角度代码没有得到数字,但是返回的值显示为data:b,它包含一个承诺。是否有方法获取成功方法的数据中返回的数字?我的角度代码如下:

vm.save = function () {
TestRepository.save(vm.MyData).$promise.then(
    function (data) {
         // Here data is returned as data : b, not the number
    },
    function () {
       alert('An error occurred while creating this record.');
    });
}
我的服务是

function TestRepository($resource) {
return {
    save: function (item) {
        return $resource('/mysite/setup/Save').save(item);
    }
}
该服务能够调用该操作,当我看到代码到达我的断点时,我可以看到newId也设置为42,但我从未看到它在角度方面返回

由于
$resource
通常用于连接RESTFUL服务,所以一定要在格式良好的对象中发送数据,这就是所有API的工作方式。以原语类型从API发送数据不鼓励人们使用错误的模式。理想情况下,它应该只返回
JSON
对象

[HttpPost]
public JsonResult Save(TestModel model)
{
    var newId = _myService.CreateItem(model);
    return Json(new {Id = newId});
}
代码

vm.save = function () {
    TestRepository.save(vm.MyData).$promise.then(
        function (data) {
             console.log(data.Id)
        },
        function () {
            alert('An error occurred while creating this record.');
        }
    );
}

你能发布console.log(数据)的结果吗@Hackerman打印出b{$promise:d,$resolved:true}如果我返回一个对象,而不仅仅是它工作的数字,则数据包含该对象,可能该数字没有作为JSON发送回来,因为Fiddler显示返回的响应只是42,而不是JSON格式。