asp.net MVC 4 - 如何从 AngularJS 调用 GET WEB API 方法



我正在使用带有MVC4的AngularJS。当我单击 data-ng-grid 中的一行时,我希望它从我的 Web API 调用 GET 方法。但。。。我希望它调用 GET BY ID 方法。出于某种原因,它总是调用检索所有电影的 GET 方法。如何调用使用参数 id 的 GET 方法?不知道我做错了什么。

var movieResource = $resource('/api/movie', {}, { update: { method: 'PUT' }, getById: { method: 'GET', params: 'id' } });
    $scope.$watchCollection('selectedMovies', function () {
        //$scope.selectedMovie = angular.copy($scope.selectedMovies[0]);
        movieResource.getById(5);
    });

    public MovieData Get(int id)
    {
        var movie = movieRepository.GetDataById(id);
        if (movie == null)
        {
            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
        }
        return movie;
    }

电影控制器

    // GET api/movie
    public IEnumerable<MovieData> Get()
    {
        return movieRepository.GetAllData().AsEnumerable();
    }
    // GET api/movie/5
    public MovieData Get(int id)
    {
        var movie = movieRepository.GetDataById(id);
        if (movie == null)
        {
            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
        }
        return movie;
    }

根据$resource文档,您必须提供如下参数: movieResource.get({id: 5})

您也可以使用$http服务$http.get('/api/movie/'+id)

最新更新