MVC Маршрутизация для IIS и Javascript - PullRequest
0 голосов
/ 03 ноября 2010

Я думаю, что мне довольно легко решить проблему, но я не могу заставить ее работать так, как мне нужно. При запуске веб-приложения через 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/ он ничего не может найти. Я немного запутался в том, что я делаю не так? Спасибо!

1 Ответ

0 голосов
/ 03 ноября 2010

Полагаю, мне следовало немного подождать, пока я не отправлю свой вопрос на SO. Я собирался удалить вопрос, но, если кто-то столкнется с этим, я решил оставить его.

Моя проблема не имела ничего общего с маршрутизацией MVC, а больше касалась настроек Visual Studio Development Server. Все, что мне нужно было сделать, это правильно ввести «Виртуальный путь», чтобы он соответствовал моей структуре IIS, и теперь веб-приложение работает локально и при развертывании без внесения изменений.

...