2010-12-11 5 views
3

J'ai l'itinéraire suivantComment éviter les paramètres de chaîne de requête dans MVC

routes.MapRoute("CreateBook", "{controller}/{action}/{slug}/{name}", new { controller = "CreateBook", action = "Index" , slug = UrlParameter.Optional, name = UrlParameter.Optional}); 

Pour une raison quelconque, chaque fois que je l'appelle RedirectToAction, l'URL apparaît comme

RedirectToAction retour (« Paramètres », nouveau {slug = 1234, name = "helloworld"});

http://localhost/CreateBook/Parameters?slug=1234?name=helloworld

Ce que je voudrais est

http://localhost/CreateBook/Parameters/1234/helloworld

Comment puis-je y parvenir?

Répondre

3

Je suppose que l'appel RedirectToAction est ramasser le par défaut itinéraire, pas votre itinéraire spécialisé.

Par défaut, lorsque vous transmettez des valeurs de route, MVC ajoute les valeurs en tant que paramètres de chaîne de requête.

Avez-vous mis cet itinéraire avant l'itinéraire par défaut?

+1

C'est exactement ce que c'était –

+0

@Sir Psycho-hehe, pensait-il. Si vous ne l'avez pas déjà fait, prenez le "Débogueur de Route" de Phil Haack. Vous épargnera BEAUCOUP de temps de débogage de route. – RPM1984

Questions connexes