Почему первый URL в новом списке все еще имеет "Customer". Я предполагаю, что это опечатка, а вы имели в виду:
У меня работают следующие маршруты:
routes.MapRoute(
"CustomerSearch"
, "Search/{query}/Page/{page}"
, new { controller = "Customer", action = "Search" }
);
routes.MapRoute(
"CustomerGeneric"
, "{action}/{id}/Page/{page}"
, new { controller = "Customer" }
);
//-- Default Route
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Customer", action = "Index", id = "" }
);
Как вы генерируете свои ссылки. Поскольку Controller больше не присутствует в URL-адресе вашего маршрута (иначе, у вас нет «{controller}» в URL-адресе маршрута), но это значение по умолчанию, вам нужно обязательно указать контроллер при создании маршрутов.
Таким образом, вместо
Html.ActionLink("LinkText", "ActionName")
сделать
Html.ActionLink("LinkText", "ActionName", "Customer")
Почему? Предположим, у вас были следующие маршруты.
routes.MapRoute(
"Default",
"foo/{action}",
new { controller = "Cool" }
);
routes.MapRoute(
"Default",
"bar/{action}",
new { controller = "Neat" }
);
Какой маршрут вы имели в виду, когда звонили?
<%= Html.ActionLink("LinkText", "ActionName") %>
Вы можете различить, указав контроллер, и мы выберем тот, чье значение по умолчанию соответствует указанному.