Je suis en train de construire une url en utilisant la méthode :
Url.Action("action", "controller");
J'aime passer la chaîne de requête de la demande actuelle dans cette url également. Quelque chose comme ce qui suit (mais cela ne fonctionne pas) :
Url.Action("action", "controller", Request.QueryString);
La conversion du QueryString en valeurs de route est possible avec l'extension suivante :
public static RouteValueDictionary ToRouteValues(this NameValueCollection queryString)
{
if (queryString.IsNull() || queryString.HasKeys() == false) return new RouteValueDictionary();
var routeValues = new RouteValueDictionary();
foreach (string key in queryString.AllKeys)
routeValues.Add(key, queryString[key]);
return routeValues;
}
Avec la méthode de l'extension, ce qui suit fonctionne :
Url.Action("action", "controller", Request.QueryString.ToRouteValues());
Existe-t-il un autre moyen plus efficace ? Thx