Parametry są bezpośrednio obsługiwane w MVC, po prostu dodając parametry do metod akcji. Biorąc pod uwagę akcję podobną do poniższej:
public ActionResult GetImages(string artistName, string apiKey)
MVC automatycznie wypełni parametry po otrzymaniu adresu URL, takiego jak:
/Artist/GetImages/?artistName=cher&apiKey=XXX
Dodatkowym specjalnym przypadkiem są parametry o nazwie „id”. Dowolny parametr o nazwie ID można umieścić w ścieżce, a nie w zapytaniu, więc coś takiego:
public ActionResult GetImages(string id, string apiKey)
zostanie poprawnie wypełniony adresem URL takim jak ten:
/Artist/GetImages/cher?apiKey=XXX
Ponadto, jeśli masz bardziej skomplikowane scenariusze, możesz dostosować reguły routingu, których MVC używa do lokalizowania akcji. Twój plik global.asax zawiera reguły routingu, które można dostosować. Domyślnie reguła wygląda następująco:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
Jeśli chcesz obsługiwać adres URL, taki jak
/Artist/GetImages/cher/api-key
możesz dodać trasę taką jak:
routes.MapRoute(
"ArtistImages", // Route name
"{controller}/{action}/{artistName}/{apikey}", // URL with parameters
new { controller = "Home", action = "Index", artistName = "", apikey = "" } // Parameter defaults
);
i metodę taką jak w pierwszym przykładzie powyżej.