Модуль перезаписи IIS7 и ASP.net Request.PhysicalPath - PullRequest
0 голосов
/ 14 февраля 2012

Мне было поручено создать функциональность хлебной крошки для клиента.Их текущий веб-сайт настроен на XML / файл.Каждая страница .aspx имеет N уровней вглубь, и элемент управления подключен к соответствующему XML-файлу.

Я решил реализовать хлебные крошки через структуру каталогов страниц.Я беру физический путь, зачищаю корень, разбиваю каталоги и использую части в качестве своей крошки.Все их папки названы в CamelCase, поэтому я использую верблюжий корпус, чтобы разбить слово для целей отображения.

Например: сайт может выглядеть как

Home

- SubDir 1

------ SubDir 1.1

---------- MyPage.aspx

- SubDir 2

------ MySecondPage.aspx

Если вы находитесь на «MyPage.aspx» .. Вы получите следующие хлебные крошки:

Домой -> Sub Dir 1 -> SubDir 1.1 -> Моя страница

Вот проблема, с которой я столкнулся.Клиент также использует модуль перезаписи IIS7 для обеспечения соблюдения строчных URL-адресов.Проблема в том, что значение, которое я возвращаю в своем вызове Request.PhysicalPath, строчное, поэтому мой отображаемый текст не работает (потому что он полагается на CamelCase).Если я отключаю принудительное использование IIS7, оно отображается, как указано выше.Если нет, я получу:

Home -> subdir 1 -> subdir 1.1 -> mypage

В любом случае есть возможность применять URL-адреса в нижнем регистре через модуль перезаписи IIS7 без влияет на вызовы Request.PhysicalPath (или Request.PhysicalApplicationPath)?

Спасибо

1 Ответ

0 голосов
/ 15 февраля 2012

Я думаю, что вы не можете полагаться на Request.PhysicalPath в этом случае.

Попробуйте использовать подход из этого вопроса для получения действительного имени файла в правильном регистре

...