1

問題: localhost:xxxx/Home/TestPage から ApiController を呼び出そうとしていますが、要求された URL: /Home/api/Test が見つからないという 404 を取得します。

Index.cshtml ページからこの呼び出しを行うと、問題なく動作し、localhost:xxxx/api/Test に移動して目的の JSON を確認できます。~/ を MapHttpRoute routeTemplate に追加しようとしましたが、例外がスローされます。

質問: URL 要求から /Home を削除するにはどうすればよいですか?

もう 1 つの例は、ページ localhost:xxxx/People/TestPage にいて、localhost:xxxx/api/Hobbies、localhost:xxx/api/Pets、locahost:xxx/api/Vehicles などの複数の URI にアクセスしたい場合です。これを処理するためにカスタム ルーティングを設定するにはどうすればよいですか? 現在、デフォルトのルートでは、/People/api/Hobbies などが見つからないというエラーが表示されます。

解決策(おそらく) : routeTemplate: "{page}/api/{controller}/{id}" を使用してカスタム MapHttpRoute を作成しましたが、機能しますが、その理由と、これが良い方法であるかどうかは完全にはわかりません。

4

1 に答える 1

0

Home はデフォルトのHTTPコントローラーです。Home/api/Test は、カスタム ルートを作成していない限り、有効な Web API コントローラー ルートではありません。すぐに使用できるデフォルトの Web API ルートはapi/{controller}/{id}. したがって、home という API コントローラーがある場合、その URL は localhost/api/home/id になります。

于 2012-07-09T19:48:59.393 に答える