Я имею в виду следующий URL:
/restaurants/italian/miami.html
/restaurants/italian/miami-p2.html
Используя эти маршруты
routes.MapRoute(null, "{category}/{branch}/{city}-p{page}.html",
new { controller = "Branch", action = "Index" });
routes.MapRoute(null, "{category}/{branch}/{city}.html",
new { controller = "Branch", action = "Index", page = 1 });
Теперь по моему вопросу, я хочу сделать необязательной часть -p {page}, а не только параметр {page}. Таким образом, я могу использовать один маршрут, а также использовать его для сопоставления исходящих URL-адресов с Url.RouteUrl(RouteValueDictionary)
(который затем автоматически удаляет часть страницы, если параметр страницы в словаре равен 1).