Вы объявили productId
как токен где-то на ваших маршрутах?
routes.MapRoute(
"Default",
"{controller}/{action}/{productId}",
new { controller = "Home", action = "Index", productId = UrlParameter.Optional }
);
Если вы не ожидали найти его в коллекции RouteData
.Эта коллекция содержит только токены, которые были объявлены в ваших маршрутах.
Маршрут по умолчанию использует id
(тот, который был создан мастером Visual Studio), так что вы можете переименовать ваш параметр действия:
public ActionResult Index(int id)
{
return View();
}
, что полностью имело бы смысл в ProductsController
например.И теперь вы найдете его в RouteData.Values["id"]
.