Odata with Asp.net and angularjs



我正在使用 Web API 从前到后跟进 AngularJS 课程 ASP.net,我们正在尝试使用 ODATA 进行查询,所以我在 WebAPI 的ProductController中添加了此代码

// GET: api/Products
[EnableQuery()]
public IQueryable<Product> Get()
{
    var productRepository = new ProductRepository();
    return productRepository.Retrieve().AsQueryable();
}

然后在 ProductController 的 Angular 代码中添加了以下代码:

function ProductListCtrl(productResource) {
    var vm = this;
    productResource.query({$skip:1, $top:3}, function (data) {
        vm.products = data;
 })

但是当我尝试运行时,它会给我以下错误:

角度.js:12701 获取 http://localhost:59302//api/products?$skip=1&$top=3 400(错误请求) 可能未处理的拒绝:{"数据":{"消息":"URI 中指定的查询无效。未注册非 OData HTTP 路由。","exceptionMessage":"未注册非 OData HTTP 路由。",.....

也许你没有 odataConfiguration??您的 EDM 配置在哪里?

在你的配置文件中,你需要这样的东西:

   public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // New code:
        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Product>("Products");
        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: null,
            model: builder.GetEdmModel());
    }
}

最新更新