2009-08-26 2 views
1

Интересно, что обрабатывается первым: если код помещен в часть aspx (с использованием серверных тегов <%%>) или код позади, потому что я помещаю переменную, которая заполняется в Page_Load в aspx между тегами сервера и I «Я ничего не получаю, когда есть ценность.Что обрабатывается первым: aspx или aspx.vb code?

Любой может указать мне в некоторых направлениях, как статья, рассказывающая о жизненном цикле страницы, который включает в себя код aspx?

Спасибо!

ответ

1

Как говорит другой плакат, есть документированное жизненный цикл.

В этом случае codebehind представляет базовый класс, aspx - производный класс. Разметка в ASPX фактически скомпилирована в собственный код, поэтому истинный ответ заключается в том, что страница и код являются по существу экземпляром, так как скомпилированный ASPX наследует код, созданный с помощью страницы, в коде.

-Oisin

+0

Наследование больше недействительно. ASPX является частью частичного объявления класса, а файл за пределами файла - это еще одна часть частичного класса _same_. –

+0

Ах, никогда не замечал. Тем не менее, эффект тот же. – x0n

1

Когда HttpHandler вызывает метод ProcessRequest(), он начинается с созданием автогенерируемого класса из файла .aspx. Этот autogenerated класс создаст иерархию управления страницей для страницы .aspx, которая просто преобразует декларативный синтаксис в фактический код на C# или VB. Этот автогенерированный класс затем объединяется с частичным кодом за классом. Теперь этот завершенный класс будет служить базовым классом на странице .aspx. Этот класс хранится в \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Временных файлах ASP.NET. И этот класс будет обрабатывать весь запрос на страницу. Поэтому, если у вас есть какая-либо защищенная/общедоступная переменная, объявленная внутри частичного кода за классом, и вы заполняете эту переменную с некоторым значением в Page_load, и если вы хотите распечатать на странице .aspx с помощью <% = variablename%>, она должна напечатать значение, которое назначается в Page_Load на веб-странице.

+0

Очень полезно, спасибо! – Sebastian

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