Routing: Action avec deux paramètres dont un optionnel
Bonjour à tous,
Je viens vers vous pour vous soumettre mon problème. Ce dernier est simple en apparence, aussi je ne serais pas surpris que l'erreur se corrige en une ligne de code. ;)
Dans mon controller "Home", j'ai un ActionResult "Recherche" qui peut prendre en paramètre deux strings, dont le second est optionnel. C'est à dire que je souhaiterai pouvoir appeler l'action par le biais des deux exemples suivants:
Citation:
Cas 1: http:// localhost/MonSite/Home/Recherche/MaValeur1/MaValeur2
Cas 2: http:// localhost/MonSite/Home/Recherche/MaValeur1
En pratique, ca passe. Dans les deux cas mon point d'arrêt à l'entrée de mon ActionResult "Recherche" est bien atteint dans les deux cas. Le cas 1 est OK. Le problème est que dans le cas 2, les deux paramètres reçus par le ActionResult sont null alors que normalement seulement le second est censé l'être.
RouteConfig:
Code:
1 2 3 4 5
| routes.MapRoute(
name: "Recherche",
url: "{controller}/{action}/{v1}/{v2}",
defaults: new { controller = "Home", action = "Recherche", v2 = UrlParameter.Optional }
); |
Controller:
Code:
1 2 3 4
| public ActionResult Recherche(string v1, string v2)
{
(...)
} |
J'ai tout essayé, même de passer le v1 en Optional dans le RouteConfig, mais rien n'y fait: quand je passe un seul paramètre dans l'URL, les deux paramètres reçus sont nulll.
A votre avis, qu'est ce qui ne va pas dans ce code? 8O
Par avance merci!