在mvc中使用带有restful web api的angularjs获取数据

时间:2016-02-23 13:51:59

标签: javascript angularjs asp.net-mvc model-view-controller asp.net-web-api

我需要创建一个应用程序,它从存储过程中获取数据并在视图中显示它。

当我将id从视图传递到angularjs控制器时,具有该字段的值,但无法在web api中获得相同的值,它显示为null(在调用时)。

更具体一点,尝试过各种选择,其中包括以下几点:

  • 使用[FromBody]
  • 将json中的字符串值从angularjs控制器传递给webapi

因此,当它为null时,它总是抛出失败的结果,而不是成功。

请帮忙。

代码:

  • Angularjs(控制器)

app.controller('matchDetailController', function($scope, $http) {
  $scope.getAllMatchDetail = function(matchId) {
    var MatchId = matchId;
    $http.get('/api/[Apicontrollername]/GetAllMatchDetail', MatchId).success(function(data) {
      if (data.status == "success") {

      } else {

      }
    }).error(function(error) {
      debugger;
    })
  }
});
<div class="view_container" id="matchDetail" data-ng-controller="matchDetailController" data-ng-init="getAllMatchDetail(@ViewBag.MatchId)">

  • 的WebAPI

    public object GetAllMatchDetail([FromBody] string MatchId)     {         SoccerWebviewMatchDetailRepository _SoccerWebviewMatchDetailRepository = new SoccerWebviewMatchDetailRepository();

        List<clsSoccerWebviewMatchDetail> objlstclsSoccerWebviewMatchDetail = _SoccerWebviewMatchDetailRepository.getAllSoccerWebviewMatchDetail(MatchId);
    
        if (objlstclsSoccerWebviewMatchDetail != null && objlstclsSoccerWebviewMatchDetail.Count() != 0)
        {
            var jsonObject = new
            {
                status = "success",
                objlstclsSoccerWebviewMatchDetail = _SoccerWebviewMatchDetailRepository.getAllSoccerWebviewMatchDetail(MatchId)
            };
    
            return jsonObject;
        }
        else
        {
            var jsonObject = new
            {
                status = "fail",
                message = "No match details found"
            };
    
            return jsonObject;
        }
    }
    

检查代码。

1 个答案:

答案 0 :(得分:0)

首先这是HttpGet方法,你需要在URL中传递参数。

Angular.js

$http.get('/api/[Apicontrollername]/GetAllMatchDetail/'+ MatchId ).success(function(data) {
  if (data.status == "success") {

  } else {

  }
}).error(function(error) {
  debugger;
})

Web API:删除[FromBody]

public object GetAllMatchDetail(string MatchId) 
{ 
    SoccerWebviewMatchDetailRepository _SoccerWebviewMatchDetailRepository = new SoccerWebviewMatchDetailRepository();
}