我使用$ resource从服务器获取数据,从我的角度控制器调用ASP.NET MVC控制器。从MVC控制器正确返回值(十进制类型?),但是当解析了promise时,它的参数只是一个空对象而不是预期值。
$资源文件:
angular
.module('app')
.service('datacontext', function ($rootScope, $resource) {
return {
emissions: $resource('/api/emissions/:id', { 'id': '@id', emissionId: '@emissionId' },
{
create: { method: 'POST' },
lock: { method: 'PUT', url: "/api/emissions/lock" },
getFxRate: { method: 'GET', isArray: false, url: '/api/emissions/getfxrate'}
})
}
ASP.NET MVC控制器
[HttpGet]
[Route("/api/emissions/getfxrate")]
public async Task<IHttpActionResult> GetFxRate(string currency)
{
var res = await _emissionsAppService.GetFxRateAsync(currency);
//Here I get properly a decimal value as expected. (eg. 1.07123)
return Ok(res);
}
角度控制器:
function getRate(currency){
datacontext.emissions.getFxRate({ currency: currency})
.$promise.then(function (result) {
//Here result is just an empty object {}
}
}
我无法理解从服务器返回客户端控制器的值所缺少的内容。
答案 0 :(得分:0)
当我返回一个原始值时,解析的promise是空的,因为需要JSON对象。
我可以通过将以下代码添加到我的$ resource来修复它。一旦我返回一个对象,我就可以在promise中正确地获取值:
free()