【问题标题】:Getting the error: “No HTTP resource was found that matches the request URI” in WebAPI and AngularJS收到错误:“未找到与请求 URI 匹配的 HTTP 资源”在 WebAPI 和 AngularJS 中
【发布时间】:2016-07-25 14:27:06
【问题描述】:

我很困惑。我使用 ASP.NET WebApi 2 作为 SPA 的 rest api 和 AngularJS。我的应用程序使用 4 个休息请求。但只有一个不起作用,我不知道为什么。

我已将流程定义如下:

客户端:

//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 创建的。我不知道问题出在哪里。如您所见,路线定义正确。

【问题讨论】:

    标签: c# angularjs asp.net-web-api angular-resource


    【解决方案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;
       }
    }
    

    【讨论】:

    • 它不起作用。在我的其他请求中,我也不需要路由地址中的参数!
    猜你喜欢
    • 2020-08-24
    • 2018-09-02
    • 2016-01-26
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    相关资源
    最近更新 更多