【发布时间】:2015-11-17 14:06:20
【问题描述】:
如何使用 Angular 中的 $resource 将 json 对象作为 GET 传递给 WebApi?
我的服务:
pmsService.factory('Widgets', ['$resource', function ($resource) {
var data = $resource('/api/:path/:id', {
path: '@path'
}, {
getWidgets: {
params: { path: 'widgets' },
method: "GET",
isArray: true
},
getWidget: {
params: { path: 'widgets' },
method: "GET",
isArray: false
},
getWidgetData: {
params: { path: 'widgets' },
method: "POST"
},
});
return data;
在角度控制器中:
Widgets.getWidgetData({ id: $scope.widget.id}, $scope.paramValues ).$promise.then(function (data) {
$scope.widget.Data = data;
$log.debug($scope.widget.Data);
});
在控制器中:
[Route("api/widgets/{id}")]
[HttpPost]
public Object Get(int id, dynamic prms)
{
....
}
这应该向 WebApi 控制器发送 2 个参数,即 Widget 的 id 和参数列表。提琴手表演:
/api/widgets/31/%5Bobject%20Object%5D
所以路由工作正常,但是我收到的对象prms是空的。
【问题讨论】:
-
paramValues 必须是数字/字符串/布尔值等。不是对象。如果要发送对象,请切换到 POST 请求
-
但是我可以在使用 POST 时取回数据吗?
-
我试过了,但同样的东西对象是空的,会在一分钟内编辑问题
标签: asp.net angularjs asp.net-web-api