2010-07-22 6 views
1

J'ai passé du asp.net mvc 1,0 à 2,0problème de chaîne de requête

Mes ActionLinks:

<%=Html.ActionLink("Add bla", "addbla", new { id = Model.Id })%> 

produisent maintenant des urls comme ceci:

addbla/500

plutôt que:

addbla/?Id=5008 

ce que cela a à voir avec le routage:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 

      routes.MapRoute(
       "Default",            // Route name 
       "{controller}/{action}/{id}",       // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 

Comment puis-je restaurer l'ancien comportement?

Merci.

Christian

+0

insert solution actuelle: routes. MapRoute (null, "{controller}/{action}", nouveau {controller = "Accueil", action = "Index"}); avant l'autre maproute. Je ne comprends toujours pas pourquoi le contrôleur reçoit une valeur nulle pour id même pour les URLs comme cette addbla/500 – cs0815

Répondre

0

Vous pouvez restaurer l'ancien comportement de suppression id MapRoute

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}", // URL with parameters 
    new { controller = "Home", action = "Index" } // Parameter defaults 
); 
+0

c'est ce que j'ai vu dans mon commentaire ci-dessus. Je ne comprends toujours pas pourquoi un URL bla/33 entraîne un id étant nul dans mon contrôleur. – cs0815

+0

Je n'ai pas vu votre commentaire, mais mon idée était de remplacer votre MapRoute, au lieu de l'insérer avant. Remplacement de MapRoute, bla/33 ne fonctionnera pas car il n'y a pas de contrôleur bla et l'action 33. Il fonctionnera uniquement avec bla? Id = 33 Insertion de cette MapRoute avant l'autre (plus générique et avec id) les deux url fonctionnent dans mes tests. – Caline

0

Essayez d'utiliser les minuscules id au lieu de casse mixte. Je n'ai pas vu ce problème dans le projet que j'ai fait la transition, mais j'utilise toujours les minuscules id.

+0

Je l'ai en fait changé en majuscule Id de l'ID. ni travaille. mettra à jour la question – cs0815