WebApi属性路由 - 最简单的路由不起作用

时间:2014-09-28 04:17:57

标签: asp.net-web-api2 attributerouting

我有一个非常基本的WebApi控制器,如下所示,它使用属性路由。

public class ValueController : ApiController
{
    //This route returns a 404
    [Route("api/v1/values")]
    public Value GetValue()
    {
        return new Value() { Name = "api/v1/values" };
    }

    //this route works fine
    [Route("api/v1/values/{valueId}")]
    public Value GetValueById(int valueId)
    {
        return new Value() { Name = "api/v1/values/{valueId}" };
    }

    //this route works fine
    [Route("api/v1/values/{valueId}/more")]
    public Value GetChildOfValue()
    {
        return new Value() { Name = "api/v1/values/{valueId}/more" };
    }
}

由于某种原因,第一条路线返回404。 其他两个都按预期工作。

在WebApiConfig中启用了属性路由。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();
    }
}

关于为什么第一条路线不起作用的任何想法???

1 个答案:

答案 0 :(得分:1)

以下是我如何调用它们并且一切正常,也许您正在请求/ api / v1 / value not value ** s **

http://localhost:62138/api/v1/values
http://localhost:62138/api/v1/values/22
http://localhost:62138/api/v1/values/22/more