我有一個名爲的LoginController用Get方法控制器的簽名:MVC4的Web API REST接口與多參數
public string Get(string Key, string Code, string UserID, string Password)
我想成爲能夠與類似的調用來調用它:
http://localhost:1234/api/Login/KeyValue/CodeValue/UserValue/PasswordValue
我不能得到這個工作。如果我調用與呼叫:
http://localhost:1234/api/Login?Key=KeyValue&Code=CodeValueUserID=UserValue&Password=PasswordValue
調用成功。
我試着添加路由,如下面的Global.asax
routes.MapHttpRoute(name: "Login", routeTemplate: "api/{controller}/{action}/{Key}/{Code}/{UserID}/{Password}",
defaults: new { Key = UrlParameter.Optional, Code = UrlParameter.Optional, UserID = UrlParameter.Optional, Password = UrlParameter.Optional });
或
routes.MapHttpRoute(name: "Login", routeTemplate: "api/{controller}/{Key}/{Code}/{UserID}/{Password}",
defaults: new { Key = UrlParameter.Optional, Code = UrlParameter.Optional, UserID = UrlParameter.Optional, Password = UrlParameter.Optional });
這些似乎並不管用。我在哪裏出錯或者甚至有可能?我能夠在MVC3的RC版本的WebApi中做到這一點。
我同意我,我需要一個API暴露給第三方,這樣的格式是在我的掌握。我嘗試了你的建議,但都沒有辦法(添加GET或指定默認操作)。我也嘗試將[HttpGet]添加到控制器標籤。 – keitn
你是對的。我錯誤地將RegisterRoutes方法添加到Global.asax(如在MVC3中),一旦我將它添加到RouteConfig.cs中,它就可以正常工作。謝謝。 – keitn