C# ASP.NET Web API错误:未找到与请求URL匹配的HTTP资源

C# ASP.NET Web API错误:未找到与请求URL匹配的HTTP资源,c#,asp.net-web-api,C#,Asp.net Web Api,我检查了其他sulotion建议,在这里询问和回答,但仍然找不到我自己的代码有什么问题 我有一个“成员””和“fals”(意思类似blogpost)控制器。每个成员都有自己的多个“fal”记录,因此我想列出属于spesific成员的“fal” 我想在我的Web API中添加一个自定义操作来完成此工作,如下所示: [HttpGet, ActionName("fals"), Route("members/{id}/fals")] public IQueryable<Fal>

我检查了其他sulotion建议,在这里询问和回答,但仍然找不到我自己的代码有什么问题

我有一个“成员””和“fals”(意思类似blogpost)控制器。每个成员都有自己的多个“fal”记录,因此我想列出属于spesific成员的“fal

我想在我的Web API中添加一个自定义操作来完成此工作,如下所示:

    [HttpGet, ActionName("fals"), Route("members/{id}/fals")]
    public IQueryable<Fal> fals(int id)
    {
        Member member = db.Members.Find(id);
        return member.Fals();
    }
我知道有两条路线,即使我注释或取消注释第二条路线,它也不会改变任何东西

当我尝试调用URL时,它会说:

{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:51601/api/members/1/fals'.",
"MessageDetail": "No action was found on the controller 'Members' that matches the name 'fals'."}
ID 1存在,因为我粘贴的代码fals存在,但无法理解它


谢谢

我不确定您是否正在使用属性路由,但请尝试从控制器操作中删除路由属性

[HttpGet, ActionName("fals")]

如果路由“干扰”了传统的路由,我认为这会起作用,或者您也可以尝试在不使用/api/部分的情况下调用URL,因为它在属性中指定的路由中丢失了。

如果从方法中删除“路由”属性,会发生什么?e、 g.
[HttpGet,ActionName(“fals”)]
刚刚删除了它,现在它看起来可以工作了!我认为这是必要的,但意识到不是。谢谢。我猜它覆盖了默认路由,所以你可能会发现,如果你把路由放回去,但是在没有URL的
/api/
部分的情况下调用它,它也会起作用。我不确定您是否也在使用属性路由,如果没有,那么路由属性如何与传统路由交互,因此这只是一个猜测,我将添加它作为答案。
[HttpGet, ActionName("fals")]