0
起初我普通GET/POST/PUT/DELETE請求到我的服務器,這config.route我的網站的API已經足夠:定製和網絡API常規方法
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
然後,我需要自定義操作(例如,而不是API /用戶/ 212 - 搞定了,我想API/GetAllUsers - GET)
所以我改變了配置到:
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "get" ,id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApiGet",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "get", id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApiPost",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "post", id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApiPut",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "put", id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApiDelete",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "delete", id = RouteParameter.Optional }
);
現在的問題,是我無法達到經典的GET('DefaultApiGet)。
編輯
換句話說,如果我有,我想他的一個職位用戶,或所有的帖子,然後我希望能夠做到這一點(用戶ID = 12345): 「 API/UserPost/12345' - 獲得用戶的最後一個職位12345 和 'API/UserPost/GETALL/12345' - 獲得用戶的所有帖子12345
你能嘗試在你的「D」中刪除'id = RouteParameter.Optional' efaultApiWithAction「路線? – Milen 2014-08-28 08:46:52
我試過了,但現在POST不起作用。我得到:405 - 方法不允許 – Lichte 2014-08-28 08:54:23
這是任何幫助:http://stackoverflow.com/questions/23293782/mvc-web-api-405-method-not-allowed – Milen 2014-08-28 09:02:39