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