2015-01-26 2 views
0

У меня есть простой WebAPI, что я хотел бы подключиться к angularjs приложениеQuery WebAPI с JSon объекта от углового ngResource

АНИ выглядит что-то вроде этого

public HttpResponseMessage GetSokAvtal(SokAvtalAdvanced sokAvtalAdvanced) 
{ 
    if (sokAvtalAdvanced != null && sokAvtalAdvanced.IsValid()) 
    { 
     try 
     { 
      var avtal = db.spSokAvtalAdvanced(
       limit: sokAvtalAdvanced.Limit, 
       offset: sokAvtalAdvanced.Offset); 

      return Request.CreateResponse(HttpStatusCode.OK, avtal); 
     } 
     catch (Exception ex) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Ett fel har inträffat"); 
     } 
    } 

    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Felaktiga parametrar"); 
} 

SokAvtalAdvanced выглядит следующим образом

public class SokAvtalAdvanced 
{ 
    #region Properties 

    private int _limit; 
    public int Limit 
    { 
     get { return _limit > 0 && _limit < 50 ? _limit : 10; } 
     set { _limit = value; } 
    } 

    private int _offset; 
    public int Offset 
    { 
     get { return _offset > 0 ? _offset : 0; } 
     set { _offset = value; } 
    } 

    #endregion 

    #region Methods 

    /// <summary> 
    /// Returns a valid modelstate 
    /// </summary> 
    /// <returns></returns> 
    public bool IsValid() 
    { 
     return true; 
    } 

    #endregion 

} 

чтобы отобразить это угловой я делал это до сих пор без каких-либо удачи

app.controller("SokAvtalController", ['$scope', 'SokApi', function ($scope, SokApi) { 
    $scope.avtal = SokApi.query({ sokAvtalAdvanced: { 
      "Limit": 10, 
      "Offset": 0 
    }}); 

    console.log($scope.avtal); 

    $scope.SelectGroup = function (avtal) { 

    }; 
}]); 

angular.module('app.avtalsportalen', ['ngResource']) 
    .factory('SokApi', ['$resource', function ($resource) { 
     return $resource('/api/SokAvtal/:sokAvtalAdvanced'); 
    }]); 

Любая идея, что не так с моим вызовом? SokAvtalAdvanced sokAvtalAdvanced является недействительным в WebAPI каждый вызов

Благодаря

+0

вы пробовали только с помощью SokApi.query ({ "Limit": 10, «Смещение»: 0 }); –

+0

@WayneEllery Yea, тот же результат –

ответ

1

Поскольку это запрос GET необходимо указать модель связующего для чтения из URL с помощью [FromUri] атрибута:

public HttpResponseMessage GetSokAvtal([FromUri] SokAvtalAdvanced sokAvtalAdvanced) 
{ 
    ... 
} 

Также на клиент вы должны использовать:

$scope.avtal = SokApi.query({ 
    "Limit": 10, 
    "Offset": 0 
}); 
Смежные вопросы