У меня в настоящее время следующие маршруты:ASP.NET MVC маршрутизации - пытается иметь имя в 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();
SpecialController имеет метод: public ActionResult Index(int ID)
Всякий раз, когда я указываю мой браузер http://hostname/test/5
, Я получаю следующую ошибку:
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.
Почему это? Я использовал отладчик маршрута mvccontrib, и кажется, что маршрут доступен, как ожидалось.
я не думаю будет случай причина даже после того, как я добавил идентификатор по умолчанию (который я уже пробовали раньше также) он по-прежнему бросает одно и то же исключение. – Yannis
Можете ли вы опубликовать код для вашего метода расширения MappUrl? – womp
это не мой код. thats часть mvccontrib, и у меня нет источника. – Yannis