2010-01-20 2 views
1

На моем сайте есть несколько скинов, чтобы представить интерфейс. Эти скины основаны на HOSTNAME, с которыми они соединяются.Тема сайта, основанная на имени хоста

Таким образом, каждый файл, изображение и т. Д. Должен быть добавлен в правильное расположение папки.

Итак, я думал, что должен поместить его в сеанс пользователя.

Итак, это самое раннее место, где я могу/должен это сделать.

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

(Пожалуйста, не говоря уже о app_themes - Я знаю о них и т.д.)

ответ

1

Зачем ставить это в сессии? Это не имеет большого значения для меня. Если мне нужно было изменить каждый URL-адрес, я бы создал HttpModule. Или, альтернативно, создайте HttpHandler для обработки запросов типа css, jpg и т. Д.

Также ... вы понимаете, что по умолчанию IIS не передает запросы на CSS, изображения и т. Д. В процесс ASP.NET ?

+0

вы неправильно интерпретировали мое сообщение. Я не пытаюсь изменить какой-либо URL-адрес, который входит вообще. Если бы я хотел сделать это, я буду использовать встроенный переписывающий URL с IIS7. Я пытаюсь создать LINKS на html, чтобы перейти к правильному местоположению для любых активов сайта (например, images/js/css). Так что это проблема вывода. –

+0

Я вижу ... в этом случае я бы подкасс существующей asp: Hyperlink или создать специализированный класс утилиты для ссылок, как вы видите в большинстве систем управления контентом (по тем же причинам). – Bryan

0

Вы должны просто указать его Request.Url.Host, который уже доступен вам в запросе. Для хорошего разделения проблем создайте темы переписью или что-то еще, решите, что в вашем контроллере или CodeBehind затем передайте это перечисление в вашей ViewModel свои ключи кода (не знаю, используете ли вы Web-формы или MVC, так что это неопределенный характер) ,

Вы определенно не должны хранить его в сеансе, потому что это не то, что варьируется от пользователя к пользователю.

Смежные вопросы