2010-04-21 4 views
0

Я признаю, что я .NET n00b. В основном, что я пытаюсь сделать, у меня есть страница с текстовым полем на ней и кнопкой изображения. При нажатии кнопки изображения я хочу, чтобы он отображал элемент управления представлением, который я настроил. Внутри этого управления представлением находится изображение и некоторый текст. Так что это то, что у меня есть в моем коде.Исключение ASP.Net в представлении управления

protected void btnSubmit_Click(object sender, ImageClickEventArgs e) 
    { 
     string email = txtUnsubscribe.Text; 
     vwSuccess.Visible = true; 
    } 

Простое право? Хорошо, когда я нажимаю кнопку для отправки, я получаю ссылку «Объект не установлен на экземпляр объекта». сообщение об ошибке. Где я иду не так?

+0

Не могли бы вы выслать больше кода? Из приведенного выше примера неясно, где проблема. – Alex

+0

txtUnsubscribe находится внутри элемента управления представлением? Из вашего описания кажется, что это не тот случай, но ... –

ответ

0

Есть txtUnsubscribe и vwSuccess как не null? Вы пробовали пройти через него в отладчике?

0

Основываясь на информации (то есть на основе небольшого количества), я бы предположил, что у вас есть проблема с порядком выполнения.

Поскольку у вас есть члены txtUnsubscribe и vwSuccess, я предполагаю, что вы их инициализируете. Если они автоматически сгенерированы из шаблонов aspx, они автоматически инициализируются перед обработкой событий, поэтому метод никогда не будет генерировать исключение нулевой ссылки.

Если нулевая ссылка исключение брошенной обработчика событий, то это должно означать, что одна из этих переменных не инициализируется (что означает, что по крайней мере один из них не генерируется автоматически из ASPX и вместо этого должны инициализироваться вручную). Если вы :, инициализируя переменные, то вы, вероятно, делаете это слишком поздно в случае, например PreRender или Render.

Когда вы нажимаете кнопку в браузере, браузер выполняет PostBack на веб-сервере. По умолчанию на этом этапе веб-сервер повторно создает страницу, выполняет обработку события и затем возвращает ее клиенту. Важно понимать, что страница не поддерживается на сервере между запросами.

Порядок событий во время загрузки страницы/постбэк можно найти из MSDN: http://msdn.microsoft.com/en-us/library/aa719775(VS.71).aspx

Конечно, если исключение не брошенная обработчика событий, весь этот ответ, вероятно, будет не так и есть, вероятно, некоторые более простая проблема.

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