Sous ASP.NET MVC, êtes-vous censé récupérer les paramètres QueryString de la même manière que dans ASP.NET WebForms? ou la déclaration [AcceptVerbs (HttpVerbs.Get)] est-elle utilisée d'une manière ou d'une autre?
Réponses
Trop de publicités?Les paramètres de chaîne de requête peuvent être acceptés simplement en utilisant un argument sur l'action - c'est-à-dire
public ActionResult Foo(string someValue, int someOtherValue) {...}
qui acceptera une requête du type ... / someroute? someValue = abc & someOtherValue = 123
En dehors de cela, vous pouvez consulter la demande directement pour plus de contrôle.
Vous pouvez toujours utiliser la collection Request.QueryString
comme des formulaires Web, mais vous pouvez également demander à MVC de les gérer et de les transmettre en tant que paramètres. C’est la méthode suggérée, car c’est plus facile et elle valide automatiquement le type de données en entrée.
Je recommande d'utiliser la propriété ValueProvider du contrôleur, de la même manière que le fait UpdateModel / TryUpdateModel pour extraire les paramètres de route, de requête et de formulaire requis. Cela empêchera vos signatures de méthodes de devenir potentiellement très volumineuses et sujettes à de fréquents changements. Cela facilite également les tests car vous pouvez fournir un contrôleur ValueProvider au contrôleur lors des tests unitaires.