En raison de facteurs extérieurs à mon contrôle, je dois gérer urls comme ceci:Comment type héritage itinéraire urls dans ASP.NET MVC
Je voudrais les acheminer vers un contrôleur/action spécifique avec le val déjà analysé et lié (c'est-à-dire un argument à l'action).
Idéalement mon action ressemblerait à ceci:
ActionResult BackwardCompatibleAction(int val)
Je trouve cette question: ASP.Net MVC routing legacy URLs passing querystring Ids to controller actions mais les réoriente ne sont pas acceptables.
J'ai essayé des routes qui analysent la partie chaîne de requête, mais toute route avec un point d'interrogation n'est pas valide.
Je suis en mesure d'acheminer la demande avec ceci:
routes.MapRoute(
"dosomething.asp Backward compatibility",
"{dosomething}.asp",
new { controller = "MyController", action = "BackwardCompatibleAction"}
);
Cependant, à partir de là le seul moyen de se rendre à la valeur de val =? est via Request.QueryString. Alors que je pourrais analyser la chaîne de requête à l'intérieur du contrôleur, cela rendrait le test de l'action plus difficile et je préférerais ne pas avoir cette dépendance. J'ai l'impression qu'il y a quelque chose que je peux faire avec le routage, mais je ne sais pas ce que c'est. Toute aide serait très appréciée.
Incroyable. Je l'ai essayé et cela a fonctionné. Shouda vient de l'essayer. Merci!!! –