Javascript 从MVC JsonResult获取数据
我的MVC控制器中有以下操作: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
[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格式。