アクションメソッドにパラメーターを追加するだけで、MVCでパラメーターが直接サポートされます。次のようなアクションがあるとします。
public ActionResult GetImages(string artistName, string apiKey)
次のようなURLが指定されると、MVCはパラメーターを自動入力します。
/Artist/GetImages/?artistName=cher&apiKey=XXX
1つの追加の特殊なケースは、「id」という名前のパラメーターです。IDという名前のパラメータは、クエリ文字列ではなくパスに入れることができるため、次のようになります。
public ActionResult GetImages(string id, string apiKey)
次のようなURLが正しく入力されます。
/Artist/GetImages/cher?apiKey=XXX
さらに、より複雑なシナリオがある場合は、MVCがアクションを見つけるために使用するルーティングルールをカスタマイズできます。global.asaxファイルには、カスタマイズ可能なルーティングルールが含まれています。デフォルトでは、ルールは次のようになります。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
次のようなURLをサポートしたい場合
/Artist/GetImages/cher/api-key
次のようなルートを追加できます:
routes.MapRoute(
"ArtistImages", // Route name
"{controller}/{action}/{artistName}/{apikey}", // URL with parameters
new { controller = "Home", action = "Index", artistName = "", apikey = "" } // Parameter defaults
);
上記の最初の例のような方法。