Относительные URL-пути MVC3 - Javascript - PullRequest
7 голосов
/ 05 мая 2011

У меня проблема с относительными путями, из-за которой, когда веб-приложение запускается из подкаталога домена, пути не являются правильными. например http://www.domain.com/webapp/

Если я использую @ Url.Content ("~ / path / to / action") на странице, это нормально. Я даже могу вставить @ Url.Content ("") в сценарий javascript. Я хочу очистить страницу, я хотел поместить javascript в файл js и сослаться на это. Теперь, когда @ Url.Content вызывается внутри файла javascript, он, похоже, не работает (возможно, по очевидным причинам). Как я могу обойти эту проблему?

Я посмотрел на <base />, но, похоже, это не сработало.

1 Ответ

12 голосов
/ 05 мая 2011

Теперь, когда вы переместили все в отдельный файл js, файл используется как статический контент, а синтаксис Razor не анализируется.

Если вам нужны относительные пути внутри вашего js, которые могут измениться, затем вы должны включить скрипт на каждой странице, который устанавливает путь var, и использовать @ Url.Content (...) в этом скрипте, например,

<script type="text/javascript">
    pathToAction = "@Url.Content(...)";
</script>

Затем объявите переменную pathToAction в вашемjs файл и используйте его по мере необходимости.

...