Visual studio 2010 WebAPI路由返回404

Visual studio 2010 WebAPI路由返回404,visual-studio-2010,asp.net-web-api,visual-studio-2012,Visual Studio 2010,Asp.net Web Api,Visual Studio 2012,给定uri http://localhost:5613/api/user/1/HasCompletedInitialScreen 我已配置以下路径 public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "ApiUserHasCompletedIn

给定uri

http://localhost:5613/api/user/1/HasCompletedInitialScreen
我已配置以下路径

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "ApiUserHasCompletedInitialScreen",
            routeTemplate: "api/user/{id}/{hascompletedinitialscreen}");

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}
控制器的动作

[HttpGet]
[ActionName("HasCompletedInitialScreen")]
public HttpResponseMessage HasCompletedInitialScreen(int id)
{
    var response = Request.CreateResponse<bool>(HttpStatusCode.Created, true);
    response.Headers.Location = GetLocation(id);
    return response;
}

我不知道你想做什么但是如果你想打电话

http://localhost:5613/api/user/1/HasCompletedInitialScreen
您的路线需要如下所示:

config.Routes.MapHttpRoute(
                name: "ApiUserHasCompletedInitialScreen",
                routeTemplate: "api/user/{id}/{action}",
                defaults: new { controller = "Something" }
            );
其中
SomethingController
是包含
HasCompletedInitialScreen
操作的控制器

另一方面,如果
ActionName
属性的名称与操作方法名称相同,则不需要声明该属性

config.Routes.MapHttpRoute(
                name: "ApiUserHasCompletedInitialScreen",
                routeTemplate: "api/user/{id}/{action}",
                defaults: new { controller = "Something" }
            );