Механизм маршрутизации берет значения переменных-заполнителей в текущем маршруте (представление, в котором вы находитесь) и автоматически добавляет их ко всем ссылкам, созданным в этом представлении, которые также содержат эти переменные.
Вам необходимо явно сбросить эти переменные там, где вам не нужны номера страниц, то есть, когда вы генерируете ссылки для своего меню, например:
ActionLink ("Tablet", "Index", new { page = "" });
К вашей проблеме со странной ссылкой: посмотрите на подпись ActionLink - вы вводите неверную последовательность параметров.
Для использования используется перегрузка:
ActionLink (string linkText, string actionName, object routeValues,
object htmlAttributes);
В качестве третьего параметра он ожидает RouteValues, но вместо этого получает строку, в то время как четвертый параметр ожидает htmlAttributes, и вы передаете ему значения маршрута.
Использовать другую перегрузку:
ActionLink (string linkText, string actionName, string controllerName,
object routeValues, object htmlAttributes);
И просто дайте ему "null" в качестве пятого аргумента, если вы не устанавливаете html-атрибуты.
ActionLink("Patients", "Index", "Patient", new {page = ""}, null)