我目前有以下路线:
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
,都会出现以下错误:
参数字典包含“SpecialController”中方法“System.Web.Mvc.ActionResult Index(Int32)”的不可空类型“System.Int32”的参数“ID”的空条目。要使参数可选,其类型应该是引用类型或 Nullable 类型。
参数名称:parameters
描述:当前web请求执行过程中发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
这是为什么?我使用了 mvccontrib 路由调试器,似乎可以按预期访问该路由。