Установка Page.Theme в коде заставляет css-файлы дважды связываться с - PullRequest
4 голосов
/ 27 мая 2011

В ASP.NET у нас до сих пор была только одна тема, которая была указана в web.config.Недавно я начал переключать тему на базовой странице PreInit, основываясь на значении Request.Url.Host, скажем, domain1.com было оригинальным, и теперь мы добавляем domain2.com ссвой стиль.После этого все теги <link rel="stylesheet...> вводятся дважды на страницу.Те domain1 , которые всегда вводились в самом начале раздела <head>, затем тег <title>, за которым следуют все теги ссылок таблицы стилей, для которых когда-либо явно указана тема на странице PreInit.

Насколько я понимаю, ASP.NET будет автоматически включать каждый файл css в папку тем, на каком событии в жизненном цикле страницы это происходит?

1 Ответ

0 голосов
/ 30 мая 2011

Хорошо, я обнаружил проблему: мы прикрепляли обработчик события PreInit, а не переопределяли метод OnPreInit на странице, что приводило к странному побочному эффекту. Похоже, что .NET делает некоторую причудливую магию в preinit для установки темы по умолчанию из web.config, которая не переопределяется полностью, если вы установите свойство Theme в обработчике событий, а не в методе. Скорее всего, это связано с тем, что события не имеют гарантированного порядка выполнения, поэтому это происходит либо слишком рано, либо слишком поздно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...