Créer RouteValueDictionary avec plusieurs valeurs clés
J'aimerais revenir un RedirectToRouteResult
qui envoie les utilisateurs vers une URL comme suit:
/MyController/MyAction/id?newid=3&newid=5&newid=7
La newid
paramètre a plusieurs valeurs.
Mon appel ressemble: return RedirectToAction(string.Empty, routeValues);
Voici ce que j'ai essayé jusqu'à présent, et qui ne fonctionnent pas:
//...?newid%5B0%5D=3&newid%5B1%5D=5&newid%5B2%5D=7
var routeValues = new RouteValueDictionary {
{"id", myid},
{"newid[0]", 3},
{"newid[1]", 5},
{"newid[2]", 7},
};
//...?newid=System.Int32%5B%5D
var routeValues = new { id = myid, newid = new int[] { 3, 5, 7 } };
//...?newid=System.String%5B%5D
var routeValues = new { id = myid, newid = new string[] { "3", "5", "7" } };
//...?newid=System.Int32%5B%5D
var routeValues = new RouteValueDictionary {
{"id", myid},
{"newid", new int[] { 3, 5, 7 } }
};
Quel est le secret pour faire ce travail?
OriginalL'auteur Dave Mateer | 2012-02-15
Vous devez vous connecter pour publier un commentaire.
C'est une chose qui manque vraiment de le cadre. Votre meilleur pari est d'enrouler manuellement:
De mettre cela dans une méthode d'extension personnalisée pourrait accroître la lisibilité de cours.
Merci fonctionne très bien! (Il fait des tests un peu plus difficile-vous avez à se moquer Contexte du contrôleur et UrlHelper--mais je suppose que c'est juste la façon dont il est.)
OriginalL'auteur Darin Dimitrov
J'ai été dans le cas où je ne connais même pas les noms des touches, où de fournir de multiples fois. Et depuis la querystring n'acceptent plusieurs touches comme un coma liste séparée. J'ai trouvé utile d'écrire une extension de la méthode basée sur Darin réponse.
OriginalL'auteur Stijn Van Antwerpen