這裏是我的代碼: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