Код, подобный RegisterUserWizardStep.FindControl("UserName") as TextBox
, вернет null
, либо если элемента управления с именем UserName
нет, либо элемент управления с именем UserName
не может быть преобразован в TextBox
. Скорее всего, это источник вашего исключения, поскольку вы пытаетесь получить свойство Text
ссылки, которая может быть null
.
Чтобы лучше понять, в чем проблема, вы можете определить функцию расширения:
static class ControlExtensions {
public T Find(this Control parent, String name) where T : Control {
var control = parent.FindControl(name);
if (control == null)
throw new ArgumentException(String.Format("Cannot find control named '{0}'.", name);
var t = control as T;
if (t == null)
throw new ArgumentException(String.Format("Control named '{0}' does not have type '{1}.", name, typeof(T).Name);
return t;
}
}
Затем можно получить свойство Text
элемента управления UserName
:
RegisterUserWizardStep.Find<TextBox>("UserName").Text
Этот вызов вызовет более описательное исключение, если элемент управления не найден.