在这里玩得很开心...(Web API 2.1、.NET 4.5.1)
我有一个完美运行的 Controller :
[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
但是我今天添加了一个新的 Controller ,它似乎根本没有被注册或识别。它没有被添加到帮助页面,并且在尝试访问它时返回 404 Not Found:
[RoutePrefix("v1/test")]
public class Test : ApiController
{
[Route("{id}")]
public string Get(int id)
{
return "value";
}
}
如我所说,新 Controller 不会出现在帮助页面中并返回 404:
/v1/test/12345
我做错了什么?
编辑添加:
我安装了 tracing,但它似乎并没有成功。第一个 Controller 工作正常并显示跟踪,新的测试 Controller 不显示任何跟踪信息。
编辑 2:
更新了示例代码以更好地匹配我的实际代码,这一直是问题所在。
最佳答案
问题出在这里:
[RoutePrefix("v1/test")]
public class Test : ApiController
更改为:
[RoutePrefix("v1/test")]
public class TestController : ApiController
似乎万能的重要词“Controller”需要出现在类名中才能发生魔法。
关于asp.net-web-api - Web API 2 : Added a new controller, 它不会注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22719420/