【发布时间】:2015-12-19 23:01:04
【问题描述】:
这是我的 Angularjs 控制器代码:
app.controller('listAdsController', ['$scope', 'myService', '$routeParams', '$location', function ($scope, myService, $routeParams, $location) {
myService.getAdsByCategory({categoryId : $routeParams.categoryId});
$scope.totalItems = 64;
$scope.pageChanged = function () {
var path = $location.path();
$location.path(path).search('page', $scope.currentPage);
};
$scope.maxSize = 10;
$scope.bigTotalItems = 175;
$scope.currentPage= 1;
$scope.itemsPerPage = 50;
}]);
在pageChangedfunction 中,我正在尝试使用如下查询字符串根据页码更改我的网址:
//localhost/category/property/4/house-for-rent?page=2
这是我对该 URL 的路由配置:
$routeProvider.when("/category/:category/:categoryId/:urlName", {
controller: "listAdsController",
templateUrl: "app/views/category-ads.html"
});
下面是我的 Web Api 2 控制器:
[HttpGet]
public IHttpActionResult GetAllByCategory([FromUri] int categoryId, int? page = null)
{
//Code
}
问题是,page 参数始终是null,无论我传入什么参数。有人可以指导我在这里缺少什么吗?
【问题讨论】:
-
试试 Localhost/GetAllByCategory/1/2,如果可行,我对原因有一个很好的解释
-
您的问题缺少一些重要部分:您的 Angular 代码如何调用 Web API 以及如何配置 Web API 路由?您发布的 Angular 代码不会调用 API。它只路由到带有模板
app/views/category-ads.html的视图,并将listAdsController分配给它(一个Angular 控制器,不是Web API 控制器)。 -
@venerik 我正在使用 myService 获取 WebApi
标签: javascript asp.net .net angularjs asp.net-web-api