Angular 从 MVC JsonResult 获取数据
Angular get data from MVC JsonResult
我的 MVC 控制器中有以下操作:
[HttpPost]
public JsonResult Save(TestModel model)
{
var newId = _myService.CreateItem(model);
return Json(newId);
}
这会运行并且 returns 一个 ID,我看到它在 Fiddler 中返回例如 42。但是我的 angular 代码没有得到数字,但返回值显示为data : b,其中包含一个承诺。有没有办法获取成功方法的数据中返回的数字?我的 angular 代码如下:
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,但我从未看到它在 angular 端返回。
由于$resource
通常用于连接RESTFUL服务,所以在格式良好的对象中发送数据,这就是所有API所做的。从 API 以原始类型发送数据会阻止人们使用错误的模式。理想情况下它应该只有 return JSON
object.
[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.');
}
);
}
我的 MVC 控制器中有以下操作:
[HttpPost]
public JsonResult Save(TestModel model)
{
var newId = _myService.CreateItem(model);
return Json(newId);
}
这会运行并且 returns 一个 ID,我看到它在 Fiddler 中返回例如 42。但是我的 angular 代码没有得到数字,但返回值显示为data : b,其中包含一个承诺。有没有办法获取成功方法的数据中返回的数字?我的 angular 代码如下:
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,但我从未看到它在 angular 端返回。
由于$resource
通常用于连接RESTFUL服务,所以在格式良好的对象中发送数据,这就是所有API所做的。从 API 以原始类型发送数据会阻止人们使用错误的模式。理想情况下它应该只有 return JSON
object.
[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.');
}
);
}