Asp.net mvc $resource返回一个空对象
我使用$resource从服务器获取数据,该服务器从我的angular controller调用ASP.NET MVC控制器。MVC控制器正确返回值(类型为decimal?),但解析承诺后,其参数仅为空对象,而不是预期值 $资源文件:Asp.net mvc $resource返回一个空对象,asp.net-mvc,angular-resource,Asp.net Mvc,Angular Resource,我使用$resource从服务器获取数据,该服务器从我的angular controller调用ASP.NET MVC控制器。MVC控制器正确返回值(类型为decimal?),但解析承诺后,其参数仅为空对象,而不是预期值 $资源文件: angular .module('app') .service('datacontext', function ($rootScope, $resource) { return { emissions: $reso
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'}
})
}
function getRate(currency){
datacontext.emissions.getFxRate({ currency: currency})
.$promise.then(function (result) {
//Here result is just an empty object {}
}
}
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);
}
我无法理解从服务器返回到客户端控制器的值缺少了什么 当我返回一个原语值时,解析的承诺是空的,因为需要一个JSON对象 我可以通过向$resource添加以下代码来修复它。只要我返回一个对象,我就可以正确地获取承诺中的值:
getFxRate: {
method: 'GET',
isArray: false,
url: '/api/emissions/getfxrate',
transformResponse: function (data) {
return { fxRate: data };
}
}