ホームページ > バックエンド開発 > C++ > ASP.NET MVCルーティングで複数のパラメータを処理するにはどうすればよいですか?

ASP.NET MVCルーティングで複数のパラメータを処理するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-16 23:25:14
オリジナル
409 人が閲覧しました

How to Handle Multiple Parameters in ASP.NET MVC Routing?

ASP.NET MVC でのマルチパラメーター ルーティング

ASP.NET MVC を使用して API を作成する場合、データを取得または操作するために複数のパラメーターをアクション メソッドに渡す必要があることがよくあります。この記事では、MVC が提供するルーティング メカニズムを使用してこれを実現する方法について説明します。

クエリ文字列を使用してパラメータを渡します

デフォルトでは、MVC はクエリ文字列を介してアクション メソッドにパラメータを渡すことをサポートしています。質問に記載されている URL は、以下のようなもので、このアプローチを使用しています:

<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026</code>
ログイン後にコピー

MVC では、コントローラーは「artist」に対応し、アクションは「getImages」に対応し、「artist」と「api_key」のクエリ文字列パラメーターがアクション メソッドのパラメーターに自動的に入力されます。

カスタムルーティングルール

MVC はクエリ文字列を介した基本的なパラメーターの受け渡しをサポートしていますが、カスタム ルーティング ルールも可能です。これにより、より複雑な URL パターンを扱う際の柔軟性が向上します。

ルーティング ルールは global.asax ファイルで定義され、特定の形式に従います。デフォルトでは、次のパターンに従います:

<code>routes.MapRoute(
            "Default",                                              // 路由名称
            "{controller}/{action}/{id}",                           // 带参数的 URL
            new { controller = "Home", action = "Index", id = "" }  // 参数默认值
        );</code>
ログイン後にコピー

「/Artist/GetImages/cher/api-key」などの URL パターンをサポートするには、新しいルートを追加できます。

<code>routes.MapRoute(
            "ArtistImages",                                              // 路由名称
            "{controller}/{action}/{artistName}/{apikey}",                           // 带参数的 URL
            new { controller = "Home", action = "Index", artistName = "", apikey = "" }  // 参数默认值
        );</code>
ログイン後にコピー

この場合、「{artistName}」タグと「{apikey}」タグが URL パスから設定され、それに応じてアクション メソッドの「artistName」パラメータと「apikey」パラメータが設定されます。

以上がASP.NET MVCルーティングで複数のパラメータを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート