ウェブAPIを使用してASP.NET MVC 4ベータ版を使用していますが、ルーティングの実装にこの質問に関連する.NET 4.0との大きな違いはないと思います。下記のコードで使用されているMapHttpRoute
は、MVC 4に同梱されており、基本的にMapRouteと同じ機能を実行する拡張メソッドですが、WebApiコントローラでは機能しません。固定URIを持つASP.NETルートがクエリ文字列パラメータをマッピングしていない
私は、ASP.NETルートを作成したいという従来のウェブサービス方法があります。それは、そのURIは次のようになり要求によってマッピングされるべき
NewsItemList ListNewsItems(string category, int maxResults)
::メソッドは、現在のシグネチャを以下ました
~/news?category=finance&maxResults=50
どちらも、いずれかまたは両方のクエリ文字列パラメータが存在することができます。
私はこの方法をサポートするルートを定義する方法を見つけるのに苦労しています。
私はMapHttpRoute
を使用して、コントローラとアクション値のルートを登録し、コントローラとメソッドのデフォルト値を適切に設定しました。ここで私は結果を試してみましたいくつかのテンプレートがあります:
"news"
は"~/news"
をキャプチャし、正しく方法に結合するが、 は、クエリ文字列を使って何をキャプチャしません。"news{*query}
あなたはキャッチオールを持つことができないので、それは に排他的でない限り、ウリセグメント"news{query}"
は、クエリ文字列をキャプチャしますが、私は「メソッド
にない バインドを行い許さ ではありませんこれはあまりにも根本的な出発点ではありません。ソリューションは、他の多くの既存のルートに適合しなければなりません。理想的には、ウリのライターの道を避けたいと思っています。