2012-02-15 2 views
2

Теперь стало требованием, чтобы мой существующий проект требовал другой «темы» для разных клиентов. Мне никогда не приходилось делать это в проекте ASP.NET MVC, и это не похоже на то, что ASP.NET Theming и MVC хорошо сочетаются.ASP.NET MVC Theming Лучшая практика?

Я бы сказал, что 75% CSS останутся неизменными, а остальные будут меняющимися. Он не должен был бы включаться «на лету», поскольку они будут развернуты как отдельные веб-сайты (возможно, на разных серверах).

Просто интересно, был ли предпочтительный метод для такого рода вещей? Я думал о том, что у меня есть базовый CSS с отдельными «специфичными для клиента» с переопределяющими правилами. Имя клиента css можно затем установить в файле web.config и перейти на главную страницу для объявления.

Есть ли я на правильном пути?

+1

Возможный дубликат [Asp.Net MVC Темы, как?] (Http://stackoverflow.com/questions/769878/asp-net-mvc-themes-how-to) - кроме этого я думаю, css as вы описали путь. – marapet

ответ

3

Мы делаем это с аналогичным подходом, как описано выше. Базовый CSS всегда загружается, а переопределения CSS применяются в зависимости от клиента.

Разница в том, что мы не используем appSetting, хотя вы могли бы. Все наши клиенты находятся на одном сервере, поэтому мы управляем им с помощью cookie. Когда пользователь регистрируется, мы берем часть после символа @ в своем адресе электронной почты и устанавливаем файл cookie, соответствующий идентификатору клиента. Наши переопределения CSS находятся в папке с тем же именем, что и идентификатор клиента.

У нас есть дочернее действие, которое добавляет дополнительные переопределения CSS в разделе главы, основываясь на значении cookie.