У меня есть это в моем глобальном
//custom route
routes.MapRoute(
"DownloadInstall", // Route name
"{controller}/{action}/{id}/{logonserver}", // URL with parameters
new { controller = "Software",
action = "DownloadInstall" } // Parameter defaults
);
//custom route
routes.MapRoute(
"DownloadHelp", // Route name
"{controller}/{action}/{id}/{logonserver}", // URL with parameters
new { controller = "Software",
action = "DownloadHelp" } // Parameter defaults
);
//default route
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Software", action = "Index",
id = UrlParameter.Optional } // Parameter defaults
);
, и я вызываю пользовательские маршруты в javascript (который прекрасно работает) следующим образом:
window.location.href = '/Software/DownloadHelp/' + @Model.ID +'\/' +
getLogonServer();
Однако, как только я переместил этодля коробки IIS7, в которой есть виртуальный каталог, мои маршруты по умолчанию были достаточно умными, чтобы начинаться с виртуального имени ... однако мои маршруты на основе javascript не найдены, потому что виртуальный каталог не добавлен.