2016-07-25 43 views
0

我非常困惑。我使用ASP.NET WebApi 2作为休息api和AngularJS作为SPA。我的应用程序使用4个休息请求但只有一个不起作用,我不知道为什么。获取错误:WebAPI和AngularJS中找不到与请求URI匹配的HTTP资源

我定义的过程如下:

客户端:

//Controller 
CrudService.getRepo(selFrom, selTo).$promise.then(
    function (response) { 
     ... 
    }, 
    function (err) { 
     $log.error('Mth: ', err); 
    }); 

//CrudService 
function getRepo(selFrom, selTo) { 
    return ResService.ds022.query(
     { 
     from: selFrom, 
     to: selTo 
     } 
    ); 
} 

//ResService: 
function ResService($resource, baseUrl) { 
    return { 
     ds022: $resource(baseUrl + '/api/qr_ds022/mth_test', { 
      from: '@from', 
      to: '@to' 
     }, {}) 
    } 
} 

而在另一方面:服务器端(的WebAPI)

[RoutePrefix("api/qr_ds022")] 
public class QR_DS022Controller : ApiController 
{ 
    private TestContext db = new TestContext(); 

    [HttpGet] 
    [Route("mth_test")] 
    public IQueryable<getRep_Result> getRepos(DateTime from, DateTime to) 
    { 
     var results = db.getRep(from, to).AsQueryable(); 
     return results; 
    } 
} 

数据库模型是用Entity Framework 6创建的。我不知道问题出在哪里。正如你所看到的,这条路线是正确定义的。

回答

1

地图路线一处与函数参数,尝试这种方式

public class QR_DS022Controller : ApiController 
{ 
    private TestContext db = new TestContext(); 

    [HttpGet] 
    [Route("api/qr_ds022/mth_test/{from}/{to}")] 
    public IQueryable<getRep_Result> getRepos(DateTime from, DateTime to) 
    { 
     var results = db.getRep(from, to).AsQueryable(); 
     return results; 
    } 
} 
+0

这是行不通的。在我的其他请求中,我也不需要路由地址中的参数! – yuro

相关问题