В маршруте необязательный параметр может появиться только в конце.Это означает, что в вашем определении маршрута параметр id
не может быть необязательным.Вам необходимо явно установить его значение.
routes.MapRoute(
"Default",
"{controller}/{action}/{id}/{lineNo}",
new {
controller = "Home",
action = "Index",
lineNo = UrlParameter.Optional
}
);
И когда вы генерируете ссылку, вы всегда должны указывать значение параметра id, если вы хотите, чтобы этот маршрут соответствовал:
@Html.ActionLink("some link", "index", new { id = "123" })
В качестве альтернативы вы можете указать значение по умолчанию для параметра id:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}/{lineNo}",
new {
controller = "Home",
action = "Index",
id = "123",
lineNo = UrlParameter.Optional
}
);
Теперь вам больше не нужно указывать его в ссылках.