URL-адрес должен действительно иметь формат:
http://localhost/controller/action/id
Например:
http://localhost/products/index/1
И идентификатор должен быть указан в действии контроллера.Например:
public ActionResult Index(int id)
{
...
Маршрут, указанный в файле global.asax, будет указывать формат URL.Для указанного выше URL будет достаточно маршрута по умолчанию:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Тогда механизм связывания модели по умолчанию автоматически свяжет ваш идентификатор (т. Е. 1 в указанном выше URL) с идентификатором int в действии.
Как и предлагал Адам, я не думаю, что вы должны указывать имя идентификатора в URL-адресе, поскольку он автоматически связывается для вас связывателем модели по умолчанию.