2014-09-28 101 views
1

我有一个非常基本的WebApi控制器,如下所示,它使用属性路由。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

这里是我叫他们和所有工作正常,也许你正在请求/ API/V1 /价值并不值计划** S **

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