这里是我的代码:Asp.Net的Web API路由不打自定义操作
public class SecurityController : ApiController
{
//GET api/Security/Current
public HttpResponseMessage GetCurrent(){
}
//POST api/Security/Login
public HttpResponseMessage PostLogin(LoginModel model){
}
}
public class OrdersController : ApiController
{
[ActionName("Default")] //GET api/Orders
public HttpResponseMessage Get(){
}
[ActionName("Default")] //GET api/Orders/2
public HttpResponseMessage Get(long id){
}
[ActionName("Default")] //POST api/Orders/
public HttpResponseMessage Post(Order order){
}
[ActionName("Default")] //DELETE api/Orders/2
public HttpResponseMessage Delete(long id){
}
[HttpPost] //POST api/Orders/2/PerformAction
public HttpResponseMessage PerformAction(long id, ActionMsg action){
}
}
//路由定义
config.Routes.MapHttpRoute("ActionApi", "api/{controller}/{action}");
config.Routes.MapHttpRoute("WithActionApi", "api/{controller}/{id}/{action}");
config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional, action = "Default" }, new { id = @"\d+" });
我的路由不工作。
No HTTP resource was found that matches the request URI
我的API控制器的正确路由定义是什么? 谢谢!
你使用什么URL?你为什么使用[ActionName(Default)]? – jzm
我假设路由将映射到具有相同操作名称的控制器中的操作。也就是说,如果ActionName属性带有动作,那么可以使用config.Routes.MapHttpRoute(“DefaultApi”,“api/{controller}/{id}”,new {id = RouteParameter.Optional,action =“Default”},new {id = @“\ d +”});'将用于路由 – SamSerious