MVC3 Custom Route имеет проблемы с виртуальным каталогом - PullRequest
1 голос
/ 05 апреля 2011

У меня есть это в моем глобальном

 //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 не найдены, потому что виртуальный каталог не добавлен.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

Я решил это, используя @ Url.Content helper как таковой:

window.location.href =  '@Url.Content("~/Software/DownloadInstall/")' + @Model.ID +'\/' + getLogonServer(); 
0 голосов
/ 05 апреля 2011

Я бы попробовал использовать помощника Url на вашем месте, но я понимаю, что результатом функции javascript будет проблема.
Я не уверен, что это сработает, но вы можете попробовать создать свою ссылку следующим образом:

var server = getLogonServer();
window.location.href = '@Url.Action("DownloadHelp", "Software", 
    new { Model.Id, logonserver = ""})' + '/' + getLogonServer();

Что бы определенно работало, так это создание getLogonServer() вспомогательной функции Html вместо функции javascript, но я не знаю, подходит ли вам эта опция.

...