jQuery ASP.NET MVC - $ .post () для другого URL-пути в разных средах - PullRequest
3 голосов
/ 06 октября 2009

Рассмотрим необходимость $.post() для немного отличающейся структуры URL в среде Visual Studio Dev от развернутой среды IIS Production или Test.

При развертывании на тестовом сервере приложение работает в виртуальном каталоге в IIS. URL будет примерно таким:

Развернутые

URL: http://myServer/myApplication/Area/Controller/Action

Используя jQuery .post(), мне нужно указать строку:

 $.post( "/myApplication/myArea/myController/myMethod"

Разработка

В среде Visual Studio

Кассини URL: http://localhost:123/Area/Controller/Action

Используя jQuery .post(), мне нужно указать строку:

 $.post( "/myArea/myController/myMethod"

Вопрос: Как я могу заставить их использовать одну и ту же строку кода, независимо от их развернутой среды?

Ответы [ 2 ]

3 голосов
/ 06 октября 2009

Я сделал это, сгенерировав URL из метода RouteUrl следующим образом:

var url = "<%= Url.RouteUrl(new { area="myArea", controller = "controller", action = "actionmethod" }) %>";
$.post(url ...

Пока ваши маршруты настроены правильно, будет генерироваться соответствующий URL.

Редактировать: Теперь работает с областями без изменений.

1 голос
/ 06 октября 2009

Другая (более простая?) Реализация будет состоять в том, чтобы установить переменную js корня вашего приложения:

<script type="text/javascript" >
    var globalAppPath = '<%= Request.ApplicationPath %>';
</script>

Тогда вы можете просто добавить его в начало любого URL-запроса.

$.post( globalAppPath + "/myArea/myController/myMethod"

Это будет работать независимо от того, где вы разместите свое веб-приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...