Я думаю, что мне довольно легко решить проблему, но я не могу заставить ее работать так, как мне нужно. При запуске веб-приложения через Visual Studio я получаю URL-адрес, такой как: http://localhost:50261/Controller/Action
, но при развертывании его в IIS URL-адрес настраивается следующим образом: http://devServer/AppName/Controller/Action
.
У меня проблема с тем, что мои ajax-URL-адреса неправильно маршрутизируются. При локальном запуске веб-приложения мой URL-адрес ajax: /Controller/Action
, но при развертывании в dev IIS для разработки необходимо изменить его на: /AppName/Controller/Action
для правильной маршрутизации запроса ajax.
Итак, я пытался создать правильный mapRoute, чтобы оставить свой URL-адрес ajax равным /AppName/Controller/Action
, чтобы мне не приходилось настраивать его каждый раз при развертывании. Это то, что у меня сейчас, это не работает:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Survey", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Dev", // Route name
"AppName/{controller}/{action}/{id}", // URL with parameters
new { controller = "DefaultController", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
С этими маршрутами, если я попробую URL: http://localhost:50261/AppName/
он ничего не может найти. Я немного запутался в том, что я делаю не так? Спасибо!