Вы получаете эту ошибку, когда у вас есть ссылка типа Control
и вы пытаетесь присвоить переменной UserControl
без приведения:
UserControl myUserControl;
myUserControl = LoadControl("~/controls/Editor.ascx");
Метод LoadControl
возвращает ссылку Control
, даже если фактический тип объекта наследует UserControl
. Чтобы присвоить его переменной UserControl
, вам необходимо привести ее в действие:
UserControl myUserControl;
myUserControl = (UserControl)LoadControl("~/controls/Editor.ascx");
Однако класс UserControl
не имеет свойства ID
, к которому вы хотите получить доступ. Чтобы получить доступ к этому вам нужна ссылка на конкретный тип вашего пользовательского элемента управления. Например:
MyEditorControl myUserControl;
myUserControl = (MyEditorControl)LoadControl("~/controls/Editor.ascx");
myUserControl.ID = 42
Или вы можете просто создать конкретную ссылку на лету, чтобы установить свойство:
Control myUserControl;
myUserControl = LoadControl("~/controls/Editor.ascx");
((MyEditorControl)myUserControl).ID = 42;