$ resource返回一个空对象

时间:2017-02-27 15:21:56

标签: asp.net-mvc angular-resource

我使用$ 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 {}
    }
  }

我无法理解从服务器返回客户端控制器的值所缺少的内容。

1 个答案:

答案 0 :(得分:0)

当我返回一个原始值时,解析的promise是空的,因为需要JSON对象。

我可以通过将以下代码添加到我的$ resource来修复它。一旦我返回一个对象,我就可以在promise中正确地获取值:

free()