web-dev-qa-db-fra.com

comment ajouter des valeurs de chaîne de requête avec la méthode RedirectToAction?

Dans asp.net mvc, j'utilise ce code:

RedirectToAction("myActionName");

Je veux passer quelques valeurs via la chaîne de requête, comment faire?

72
mrblah

Toutes les valeurs transmises qui ne font pas partie de l'itinéraire seront utilisées comme paramètres de chaîne de requête:

return this.RedirectToAction
  ("myActionName", new { value1 = "queryStringValue1" });

Retournerais:

/controller/myActionName?value1=queryStringValue1

En supposant qu'il n'y a pas de paramètre de route nommé "valeur1".

141
Talljoe

Pensez également à utiliser T4MVC , qui a les méthodes d'extension AddRouteValue() et AddRouteValues() (comme on le voit sur cette question sur définition de la chaîne de requête dans redirecttoaction =).

4
Martin_ATS

Ne faites pas la même erreur que je faisais. Je gérais des erreurs 404 et je voulais rediriger avec 404=filename dans la chaîne de requête, c'est-à-dire mysite.com?404=nonExistentFile.txt.

Les clés QueryString ne peuvent pas commencer par des nombres. Changement de 404 à FileNotFound a résolu mon problème, c'est-à-dire mysite.com?FileNotFound=nonExistentFile.txt.

1
Nicholas V.