J'ai actuellement les routes suivantes:routage ASP.NET MVC - essayer d'avoir un nom dans l'URL
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
MvcRoute.MappUrl("{controller}/{action}/{ID}")
.WithDefaults(new { controller = "home", action = "index", ID = 0 })
.WithConstraints(new { controller = "..." })
.AddWithName("default", routes)
.RouteHandler = new MvcRouteHandler();
MvcRoute.MappUrl("{title}/{ID}")
.WithDefaults(new { controller = "special", action = "Index" })
.AddWithName("view", routes)
.RouteHandler = new MvcRouteHandler();
Le SpecialController a une méthode: public ActionResult Index(int ID)
Chaque fois que je pointe mon navigateur pour http://hostname/test/5
, Je reçois l'erreur suivante:
The parameters dictionary contains a null entry for parameter 'ID' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Index(Int32)' in 'SpecialController'. To make a parameter optional its type should be either a reference type or a Nullable type.
Parameter name: parameters
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Pourquoi est-ce? J'ai utilisé le débogueur de route mvccontrib, et il semble que la route est accessible comme prévu.
je ne pense que c'est la cause de cas, même après i ajouté l'ID par défaut (que j'avais essayé avant aussi bien) il jette toujours la même exception. – Yannis
Pouvez-vous poster le code pour votre méthode d'extension MappUrl? – womp
ce n'est pas mon code. Cela fait partie de la mvccontrib et je n'ai pas la source disponible – Yannis