我跟隨在課程AngularJS前端與Web API使用ASP.net,我們正在嘗試使用ODATA進行查詢,所以我添加了代碼ProductController
在WebAPIOdata與Asp.net和angularjs
// GET: api/Products
[EnableQuery()]
public IQueryable<Product> Get()
{
var productRepository = new ProductRepository();
return productRepository.Retrieve().AsQueryable();
}
然後加在ProductController的下面的代碼中的角碼:
function ProductListCtrl(productResource) {
var vm = this;
productResource.query({$skip:1, $top:3}, function (data) {
vm.products = data;
})
但是當我嘗試運行它給了我下面的錯誤:
angular.js:12701 GET http://localhost:59302//api/products ?$skip=1&$top=3 400 (Bad Request) Possibly unhandled rejection: {"data":{"message":"The query specified in the URI is not valid. No non-OData HTTP route registered.","exceptionMessage":"No non-OData HTTP route registered.",.....
你有一臺連接路線模型?如果你有'ProductController',那麼路由必須是'... \ Product',而不是'products'。我相信,這是區分大小寫的。 –
在你的控制器中返回IQueryable是一個壞主意。這不是數據,IQueryable是一種構建查詢的方式,但它不會真正執行任何操作,除非您執行ToList()或專門調用執行。沒有理由從你的控制器返回它,如果你沿着這條路線走下去,這將是很多問題的原因。 –
這是教程說明,我只是想明白。該型號是產品不是產品 –