У меня есть необычное обстоятельство, когда наш веб-сервер вставляет папку в URL-адрес перед загрузкой страницы. Позвольте мне дать вам пример:Путь к серверу ASP.NET MVC отличается от пути приложения
приложение называется оборудование и, если бы я, чтобы запустить его на обычной установке сервера, он будет выглядеть так:
www.site.com \ оборудование \ дом \ индекс
НО когда я запускаю его на нашем сервере, он вставляет "IDN" в URL:
www.site.com \ IDN \ оборудование \ дом \ индекс
в путает мои относительные ссылки. Функции MVC хотят перенаправить использование «\ оборудование» вместо «\ idn \ equipment». Это происходит с помощью Scripts.Render(), Return View() и т. Д.
Кроме того, я не могу жестко закодировать «idn» в своих URL-адресах b/c, тогда он уже не является относительным, и он не будет работать мой dev box или тестовые серверы b/c у них нет подпапки idn в localhost.
Я также пробовал функции, такие как Request.ApplicationPath, и что нет, но ни один из них не возвращает «idn» в результате.
Есть ли способ MVC знать, что этот «idn» был вставлен в URL-адрес и учтен для него?
Спасибо!
Я должен сказать, что все это работает, если вы используете app-relative (начинайте с '~' или относительных URL-адресов (начинайте с '.', '..' или имя файла/папки). Абсолютные URL-адреса (те, которые запускаются с '/') не будет работать, но вы все равно не должны их использовать. –
Это не отвечает на мой вопрос. Мне нужно знать, есть ли встроенная функция, которая распознает, когда «idn» находится в URL-адрес и перенаправление соответственно. Пути жесткого кодирования на разных компьютерах невозможны. Относительно «~» app-relative не возвращает «idn». Он возвращает «/ оборудование». – user441058
Вам не нужно жесткого кода разные пути на разных компьютерах, если вы это делаете, как я уже сказал. Именно так вы устанавливаете приложение в IIS, которое вызывает у вас проблему. –