Visual studio 2010 WebAPI路由返回404
给定uriVisual 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
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" }
);