Assurez-vous de marquer votre option params avec UrlParameter.Optional
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
C'était le problème pour nous (symptômes que la vôtre).
- Édité Ce n'était pas le seul problème. Lors de la migration vers MVC 3, vous pouvez obtenir problème suivant, supposons que vous aviez cette route (id
et page
étaient en option)
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}/{page}", // URL with parameters
new { controller = "Home", action = "Index", id = "", page = "" } // Parameter defaults
);
maintenant vous devez le diviser à 2 voies différentes:
routes.MapRoute(
"Paged", // Route name
"{controller}/{action}/{id}/{page}",
new { controller = "Home", action = "Index", page = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional}//, page = UrlParameter.Optional } // Parameter defaults
);
Quel HTML est rendu par le 'ActionLink' lorsque vous mettez à niveau vers .NET 4.0 et en quoi diffère-t-il du HTML généré sous .NET 3.5? –
Oui - im .net 3.5 Je reçois le lien avec le href à l'action avec, en .net 4 je reçois rien ... m'envoie à l'itinéraire du site. – SteveCl
a également essayé Url.Action et même. Je voulais dire la racine du contrôleur si http: // site/controller / – SteveCl