Asp.net декларативно добавляет элементы управления. Где они созданы? - PullRequest
2 голосов
/ 20 февраля 2012

Я вернулся к веб-формам asp.net, и у меня возник вопрос об элементах управления.Когда я добавляю элемент управления декларативно (т. Е. Путем перетаскивания элемента управления из панели инструментов), например кнопки на страницу aspx, я ожидал, что объект кнопки будет объявлен и создан в файле designer.cs. Вместо этоговсе, что я могу найти, это

protected global::System.Web.UI.WebControls.Button ButtonTest;

, но нигде не могу найти код, который создал новый объект кнопки и назначил его для ButtonTest.Кто-нибудь знает, где и когда это происходит?

Ответы [ 2 ]

4 голосов
/ 20 февраля 2012

Раньше он работал в соответствии с тем, что вы описали, еще в .NET 1.1 дней.Введение частичных классов позволило упростить этот подход, поэтому вам обычно не нужно напрямую взаимодействовать с сгенерированным кодом.

Если вы хотите точно увидеть, что делает фреймворк: разметка получаетскомпилирован в частичный класс, который содержит объявления для объектов на странице, а также вызовы конструкторов и т. д.

Вы не можете легко просмотреть автоматически сгенерированный код из Visual Studio.Чтобы увидеть его, включите отладку для своего проекта и просмотрите:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \

Исходный код дляскомпилированный файл должен находиться в одном из подкаталогов.

Еще проще: если вы создали небольшую ошибку компиляции на своей странице, а затем попробуйте просмотреть ее в браузере, вы должны увидеть ссылку внизустраница ошибки, которая позволяет просматривать «источник компиляции».

2 голосов
/ 20 февраля 2012

Для всего этого существует сложный жизненный цикл, в этой статье объясняется, что делается, когда и в каком порядке. http://msdn.microsoft.com/en-us/library/ms178472.aspx

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