2 つの URL に応答する必要があるコントローラーを作成するためにマップする必要があります。
- "http://localhost/api/controller?id=1" (id 値のみ変更可能)
- 「http://localhost/api/controller/anotherId/someconst」(anotherId のみ変更部分)
私はそれをそのようなルートにマッピングします:
routes.MapHttpRoute("Test", "api/{controller}/{id}/{someconst}", new { controller = "Test", someconst = RouteParameter.Optional });
そして、コントローラーでメソッドを実行する必要があります:
public void Get(int id) { ... }
public void Get(int anotherId, string someconst ) { ... }
それは機能します...しかし、見た目は良くありません...「string someconst」はパラメーターではなく、単にURLのconst部分であるためです。しかし、「string someconst」パラメータを削除すると、2 番目の URL が機能しなくなります。実際には const である偽のパラメーターなしで明確にするために、この URL を解決するために 1 つのコントローラーを 2 つのルートにマップすることは可能ですか?