Что обрабатывается первым: код aspx или aspx.vb?

Интересно, что обрабатывается первым: код, помещенный в часть aspx (используя серверные теги ‹%%>), или код позади, потому что я помещаю переменную, которая заполняется в Page_Load, в aspx между серверными тегами, и я ничего не получая, когда есть значение.

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

Спасибо!


person Sebastian    schedule 26.08.2009    source источник


Ответы (3)


Из MSDN: Обзор жизненного цикла страницы ASP.NET

(http://msdn.microsoft.com/en-us/library/ms178472.aspx)

person CD..    schedule 26.08.2009
comment
эта ссылка не работает, попробуйте следующее: msdn.microsoft.com/en-us/ библиотека/ms178472.aspx - person Ben Lesh; 26.08.2009

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

Кроме того, программный код представляет собой базовый класс, а aspx — производный класс. Разметка в ASPX на самом деле компилируется в машинный код, поэтому истинный ответ заключается в том, что страница и программный код по сути являются одним экземпляром, поскольку скомпилированный ASPX наследует код, производный от Page, в кодовом коде.

-Ойсин

person x0n    schedule 26.08.2009
comment
Наследство больше не соответствует действительности. ASPX — это часть объявления разделяемого класса, а вспомогательный файл — другая часть того же разделяемого класса. - person Rune FS; 26.08.2009
comment
А, никогда не замечал. Тем не менее, эффект тот же. - person x0n; 26.08.2009

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

person Nirlep    schedule 26.08.2009