Les paramètres sont directement pris en charge dans MVC en ajoutant simplement des paramètres à vos méthodes d'action. Étant donné une action comme celle-ci:
public ActionResult GetImages(string artistName, string apiKey)
MVC remplira automatiquement les paramètres lorsqu'il reçoit une URL telle que:
/Artist/GetImages/?artistName=cher&apiKey=XXX
Un cas spécial supplémentaire est celui des paramètres nommés "id". Tout paramètre nommé ID peut être placé dans le chemin plutôt que dans la chaîne de requête, donc quelque chose comme:
public ActionResult GetImages(string id, string apiKey)
serait rempli correctement avec une URL comme celle-ci:
/Artist/GetImages/cher?apiKey=XXX
En outre, si vous avez des scénarios plus compliqués, vous pouvez personnaliser les règles de routage que MVC utilise pour localiser une action. Votre fichier global.asax contient des règles de routage qui peuvent être personnalisées. Par défaut, la règle ressemble à ceci:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
Si vous souhaitez prendre en charge une URL comme
/Artist/GetImages/cher/api-key
vous pouvez ajouter un itinéraire comme:
routes.MapRoute(
"ArtistImages", // Route name
"{controller}/{action}/{artistName}/{apikey}", // URL with parameters
new { controller = "Home", action = "Index", artistName = "", apikey = "" } // Parameter defaults
);
et une méthode comme le premier exemple ci-dessus.
À partir de MVC 5, vous pouvez également utiliser le routage d'attributs pour déplacer la configuration des paramètres d'URL vers vos contrôleurs.
Une discussion détaillée est disponible ici: http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx
Résumé:
Commencez par activer le routage d'attributs
Ensuite, vous pouvez utiliser des attributs pour définir des paramètres et éventuellement des types de données
la source
Vous pouvez passer des paramètres arbitraires via la chaîne de requête, mais vous pouvez également configurer des itinéraires personnalisés pour le gérer de manière REST:
Cela pourrait être:
Donc, si quelqu'un a utilisé l'itinéraire suivant:
Cela les amènerait au même endroit que votre exemple de chaîne de requête.
Ce qui précède n'est qu'un exemple et n'applique pas les règles métier et les contraintes que vous devrez mettre en place pour vous assurer que les gens ne «piratent» pas l'URL.
la source