Дополнительно
Как получить базовый URL приложения MVC на JavaScript
Как я могу получить базовый URL-адрес с помощью JavaScript?
Е. Г., При просмотре сайта из Visual Studio, а если мой URL-адреса http://localhost:20201/home/index
я хочу сделать http://localhost:20201
Если я размещаю свой сайт на IIS, и если мое имя виртуального каталога myapp и URL-адреса http://localhost/MyApp/home/index
я хочу сделать http://localhost/MyApp
Я попытался с помощью местоположение.расположение протокола
+.хоста
(и местоположение.хоста
), они прекрасно работают, когда я просматривать мой сайт через Visual Studio, но когда я разместить его на IIS, я получаю `http://localhost в /myapp является усеченным от.
28
8
Вы должны избегать делать такие обнаружения в JavaScript и вместо того, чтобы передать значение .Net код. Вы всегда рискуете нарваться на проблемы с URL-адреса, такие как
http://server/MyApp/MyApp/action
где вы не знаете, это название контроллера и где путь к приложению.В ваш макет.cshtml файл (или куда вам нужно) добавить следующий код:
В
новый URI () часть необходима, так что URL-адрес всегда правильно смешанная (без проверки вручную, если каждая часть начинается или заканчивается с
символ/`).Я не'т думаю, что это возможно, как JavaScript (клиент) не't знаю что-нибудь о развертывании (myapp) и рассматривает его как часть pathinfo (как и индекс /дома/). В качестве обходного пути, вы могли бы попытаться интерпретировать pathinfo (расположение.пути) в соответствии с доменом или порт.
Но вы можете установить переменную JavaScript в глобальной области видимости (или то, что вам подходит), содержащий путь (путь генерируется на сервере и помещается в переменную).
Это может выглядеть что-то вроде этого в HTML-руководитель:
Попробуйте ниже код.
Спасибо,
Шива
Если вы используете .Чистая ядра, вы можете получить URL-адрес установки JavaScript-переменной в глобальной области видимости (например, в макет.cshtml файл, этот файл находится в папке Views/общий):
Из версии C# 6 с помощью интерполяции:
Я думаю, что правильное решение будет, как
Собираем базовый URL-адрес в файл _Layout` html как так
Контекст.Запрос.URL-адрес.GetLeftPart(UriPartial.Органа) дам вам в
местные http://localhost:20201 из IIS даст вам http://localhost
URL-адрес.Содержание (и"~/", У) в местной будет пуста, но в IIS выдаст вам название приложения, в вашем случае приложение
Затем с ПЛ:
Чем можно использовать как:
https://msdn.microsoft.com/en-us/library/system.uri.getleftpart(в=против 110).аспн http://api.jquery.com/data/
Определить его в файл макета и добавление base_url. Этот работал для меня.
Вы можете установить базовый URL-адрес в голова тег вашу страницу. Все ссылки/hrefs будет использовать это, чтобы вызвать relatieve hrefs.
Объяснение: