ASP.NET MVC のマルチパラメーター ルーティングの詳細な説明
ASP.NET MVC に基づいて RESTful API を設計する場合、多くの場合、コントローラーのアクション メソッドに複数のパラメーターを渡すことが必要になります。この記事では、この状況に対処する方法を検討し、利用可能な方法を詳しく説明します。
クエリ文字列を使用してパラメータを渡します
デフォルトでは、MVC はクエリ文字列パラメーターをアクション メソッドのパラメーターに自動的にマップします。以下のハウツーを検討してください:
<code class="language-csharp">public ActionResult GetImages(string artist, string apiKey)</code>
次のような HTTP リクエスト:
<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=my_key</code>
アーティストと apiKey パラメータは、GetImages オペレーションを呼び出すときに設定されます。
「id」パラメータの特殊なケース
クエリ文字列の代わりに、「id」という名前のパラメータを URL パスに含めることができます。たとえば、次のようになります:
<code class="language-csharp">public ActionResult GetImages(string id, string apiKey)</code>
次の URL を使用して呼び出すことができます:
<code>http://ws.audioscrobbler.com/2.0/Artist/GetImages/cher?api_key=my_key</code>
カスタムルーティングルール
より複雑なケースの場合、MVC はルーティング ルールをカスタマイズしてアクションを見つける柔軟性を提供します。 global.asax ファイルで、デフォルトのルーティング モードを指定する Routes.MapRoute メソッドを編集します。
例: 特定のパラメーターを使用したカスタム ルーティング
次のように URL を処理するには:
<code>http://ws.audioscrobbler.com/2.0/Artist/GetImages/cher/my_key</code>
次のルートを追加できます:
<code class="language-csharp">routes.MapRoute( "ArtistImages", "{controller}/{action}/{artistName}/{apiKey}", new { controller = "Artist", action = "GetImages", artistName = "", apiKey = "" } );</code>
このカスタム ルートでは、GetImages オペレーションが呼び出され、artistName パラメーターと apiKey パラメーターが URL セグメントから設定されます。
以上がASP.NET MVCで複数のパラメータをルーティングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。