次の署名を持つ Get メソッドを持つ LoginController という名前のコントローラーがあります。
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でこれを行うことができました。