Работая над довольно крупным проектом веб-приложения, я решил, что он может немного подышать свежим воздухом, пометив некоторые страницы и элементы управления атрибутом CompilationMode = "Never" @Page. Пока все хорошо, работает, как ожидалось, и тогда это случилось. Сценарий в угловом случае, который я собираюсь объяснить, вел себя неожиданно, чтобы выразить это красиво. Этот сценарий является вложенными главными страницами.
Быстрый тизер, прежде чем продолжить. Как вы думаете, насколько глубокой будет вложенность, если пометить верхнюю главную страницу как CompilationMode = " Always ", а все остальные под ней с помощью CompilationMode = " Never"? Нет, это не бесконечно, или какой-то внутренний номер, который есть в ASP.NET. Его 2 . Зачем? - Понятия не имею, и я надеялся, что некоторые из вас, умные ребята, смогут меня просветить?
Я приложил проект с 5 вложенными главными страницами, чтобы продемонстрировать, о чем я говорю: Тестовый проект веб-приложения с вложенными главными страницами .
Еще один угловой случай, который также работает неожиданно - если у вас есть 5 вложенных главных страниц, замените второй на CompilationMode = "Always", а на все остальные на CompilationMode = "Never". Вы заметите, что 3-я главные страницы применяются дважды !
Пожалуйста, помогите мне понять, если что-то делаю неправильно, или подтвердите ошибку.
ASP.NET Runtime Версия: 2.0, .NET: 3.5
EDIT:
В прикрепленном проекте все главные страницы имеют значение CompilationMode = " Никогда ". Страница ASPX отображается по желанию. Измените первый мастер (Site.master), чтобы CompilationMode = "Always", чтобы увидеть, о чем я говорю.