質問:
次の API 呼び出し形式を考慮して、ASP.NET MVC のアクション メソッドに複数のパラメーターを渡すにはどうすればよいですか?
<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026</code>
答え:
MVC は、アクション メソッドのパラメーターにパラメーターを直接追加することで、マルチパラメーターの受け渡しをサポートします。たとえば、次のアクション メソッドを考えてみましょう:
<code>public ActionResult GetImages(string artistName, string apiKey)</code>
MVC は、次の形式で URL が指定されると、パラメーターを自動的に設定します:
<code>/Artist/GetImages/?artistName=cher&apiKey=XXX</code>
「id」という名前のパラメータについては、次のようにクエリ文字列の代わりにパスに含めることができます。
<code>public ActionResult GetImages(string id, string apiKey)</code>
このメソッドは次の URL 経由で正しく設定されます:
<code>/Artist/GetImages/cher?apiKey=XXX</code>
さらに、カスタマイズ可能なルーティング ルールにより、より複雑なシナリオも可能になります。 global.asax ファイルでは、MVC で使用されるルーティング ルールを再定義できます。デフォルトのルールは次のとおりです:
<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>
これにより、最初の例と同様のアクション メソッドを使用できるようになります。
以上がASP.NET MVC アクション メソッドに複数のパラメーターを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。