在这里度过一段时间......(Web API 2.1,.NET 4.5.1)
我有一个完美运行的控制器:
[RoutePrefix("v1/members")]
public class MembersController : ApiController
{
[Route("{id}")]
public Member Get(string id)
{
DataGateway g = new DataGateway();
return g.GetMember(id);
}
}
按预期和期望工作,如:
/v1/members/12345
但是我今天添加了一个新的控制器,它似乎没有被注册或识别。它不会添加到“帮助”页面,并在尝试访问时返回404 Not Found:
[RoutePrefix("v1/test")]
public class Test : ApiController
{
[Route("{id}")]
public string Get(int id)
{
return "value";
}
}
就像我说的那样,新控制器没有出现在帮助页面中并返回404:
/v1/test/12345
我做错了什么?
已编辑添加:
我安装了跟踪,但它似乎没有达到那个目的。第一个控制器工作正常并显示跟踪,新的测试控制器不显示任何跟踪信息。
编辑2:
更新了示例代码,以便更好地匹配我的实际代码,这一直是问题所在。
答案 0 :(得分:6)
问题在于:
[RoutePrefix("v1/test")]
public class Test : ApiController
更改为:
[RoutePrefix("v1/test")]
public class TestController : ApiController
似乎全能的重要词“控制器”需要在类名中才能发生魔法。