Routage multi-paramètres dans ASP.NET MVC
Lors de la création d'une API à l'aide d'ASP.NET MVC, vous devez souvent transmettre plusieurs paramètres aux méthodes d'action pour récupérer ou manipuler des données. Cet article explique comment y parvenir à l'aide du mécanisme de routage fourni par MVC.
Utiliser la chaîne de requête pour transmettre les paramètres
Par défaut, MVC prend en charge la transmission de paramètres aux méthodes d'action via des chaînes de requête. L'URL fournie dans la question, similaire à celle ci-dessous, utilise cette approche :
<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026</code>
Dans MVC, le contrôleur correspond à "artiste", l'action correspond à "getImages" et les paramètres de chaîne de requête "artiste" et "api_key" sont automatiquement renseignés dans les paramètres de la méthode d'action.
Règles de routage personnalisées
Bien que MVC prenne en charge le passage de paramètres de base via des chaînes de requête, il permet également des règles de routage personnalisées. Cela offre une plus grande flexibilité lorsqu’il s’agit de modèles d’URL plus complexes.
Les règles de routage sont définies dans le fichier global.asax et suivent un format spécifique. Par défaut, ils suivent le modèle suivant :
<code>routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带参数的 URL new { controller = "Home", action = "Index", id = "" } // 参数默认值 );</code>
Pour prendre en charge les modèles d'URL tels que "/Artist/GetImages/cher/api-key", un nouvel itinéraire peut être ajouté :
<code>routes.MapRoute( "ArtistImages", // 路由名称 "{controller}/{action}/{artistName}/{apikey}", // 带参数的 URL new { controller = "Home", action = "Index", artistName = "", apikey = "" } // 参数默认值 );</code>
Dans ce cas, les balises "{artistName}" et "{apikey}" seront renseignées à partir du chemin de l'URL, et les paramètres "artistName" et "apikey" de la méthode d'action seront renseignés en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!