Почему мой веб-контроль пуст? - PullRequest
3 голосов
/ 05 сентября 2008

У меня есть веб-сайт в asp.net, который использует главную страницу. На этой главной странице у меня есть элемент управления множественного просмотра с одним представлением, содержащим весь контент для страниц содержимого, и одним представлением, имеющим некоторое локальное содержимое, для главной страницы, где отображаются сообщения об ошибках со всех страниц содержимого.

В этом окне ошибок у меня есть элемент управления ярлыком asp.net, который отображает сообщения об ошибках. Обычно метка работает нормально, но в некоторых случаях метка имеет значение null, что создает исключение NullReferenceException. Теперь я обработал этот случай, проверив, является ли метка нулевым, прежде чем использовать его, но все же мой вопрос:

Почему этот ярлык пуст? Какие обстоятельства могут вызвать это?

РЕДАКТИРОВАТЬ: На главной странице у меня есть метод SetErrorText, который принимает строку и устанавливает метку. Я вызываю этот метод из метода Page_Load страниц содержимого, и это обычно работает нормально. Во всех случаях, кроме двух (которые я обнаружил до сих пор), метка инициализируется, и ничто не отделяет эти два случая от всех работающих.

Кроме того, все остальные элементы управления на главной странице инициализируются, например, элемент управления View, на котором размещена метка.

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

Ответы [ 4 ]

4 голосов
/ 05 сентября 2008

Кажется, проблема была в разгильдяйстве. Кто-то забыл удалить автоматически созданные элементы управления содержимым, которые Visual Studio добавляет на все страницы содержимого, где главная страница имеет элемент управления ContentPlaceHolder.

Если страница содержимого имеет элемент управления Content, все элементы управления, помещенные в элемент управления ContentPlaceHolder на главной странице, будут иметь значение null.

1 голос
/ 05 сентября 2008

С какого метода на главной странице вы получаете доступ к ярлыку? В зависимости от стадии жизненного цикла страницы элемент управления меткой может быть еще не загружен

0 голосов
/ 03 сентября 2015

У меня была очень похожая ошибка. В моем случае это было вызвано странностью компилятора .NET, связанной с файлом конструктора элемента управления. Даже если в файле конструктора правильно определены элементы управления, удалите его, сгенерируйте заново и перестройте (не забудьте просто перестроить, а не просто «собрать»). Смотрите верхний ответ здесь, чтобы узнать, как восстановить файл конструктора:

Как заставить Visual Studio заново создать файлы .designer для файлов aspx / ascx?

0 голосов
/ 05 сентября 2008

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

...