2017-05-30 65 views
0

我想在angularjs中使用$ http的get方法。我选择的播放器连接到选择并正常工作。我也尝试了与同样的结果http.get。我得到第一个警报,但没有任何事。我有这样的(基本上是什么我们的老师做副本):Angularjs http get和C#api控制器问题

   $scope.selectedplayer; 
       $scope.playerdata = [];     
       $scope.getPlayerData = function() { 
        alert("function started");     
        return $http({ 
         url: '/api/Player/' + $scope.selectedplayer, 
         method: "GET"}) 
         .succes(function (data) { 
          alert("succes"); 
          $scope.playerdata = data; 

         } 


).error(function(data){alert("error")}      
       );; 
       alert("other"); 
      } 

而且我的控制器:

//GET: api/Player/Özil 
     [Route("api/player/{playername}")] 
     public Player Get(string playername) 
     { 
      DataClasses1DataContext db = new DataClasses1DataContext(); 
      IEnumerable<Player> playerlist = db.Players.Where(x => x.Name.Equals(playername)).AsEnumerable(); 
      int cardcounter = playerlist.Count(); 
      int chance = 0; 
      Random rng = new Random(); 
      if (cardcounter>1) 
      { 
       chance = rng.Next(0, cardcounter - 1); 
      } 
      return playerlist.ElementAtOrDefault(chance); 

     } 

如果我手动达到目标(如http://localhost:63991/api/Player/Thiago)我得到的结果很好。我有一个包含FIFA终极队卡的数据库(他们的ID,名字和评级)。玩家可以拥有不同属性的多张牌。我的目标是选择一名球员(比如Özil)并因此获得他的一张牌。

+0

首先,正确调试您的问题 - 尝试打开浏览器控制台(chrome/ff中的F12)并查看实际发送到服务器的请求。 或者您可能尝试将您创建的URL存储到某个局部变量中,并将其打印到控制台以查看其中的内容。底线 - 确定问题的根源。 –

回答

0

您是否尝试将您的功能更改为.success?这应该有所帮助。

+0

我只是将它改为.then(function(succes){}),它现在可以工作。泰 –