我正在使用带有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)