Web API 2:添加了一个新的控制器,它不会注册?

时间:2014-03-28 17:23:41

标签: asp.net-web-api asp.net-web-api-routing

在这里度过一段时间......(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

Screenshot

我做错了什么?

已编辑添加:

我安装了跟踪,但它似乎没有达到那个目的。第一个控制器工作正常并显示跟踪,新的测试控制器不显示任何跟踪信息。

编辑2:

更新了示例代码,以便更好地匹配我的实际代码,这一直是问题所在。

1 个答案:

答案 0 :(得分:6)

问题在于:

[RoutePrefix("v1/test")]
public class Test : ApiController

更改为:

[RoutePrefix("v1/test")]
public class TestController : ApiController

似乎全能的重要词“控制器”需要在类名中才能发生魔法。