Использование пользовательского элемента управления ASP.NET в коде приводит к исключению «определено в сборке без ссылки» - PullRequest
0 голосов
/ 09 декабря 2010

У меня есть пользовательский элемент управления, который содержит ряд других пользовательских элементов управления.

Мне нужен программный доступ к некоторым свойствам одного из внутренних элементов управления со страницы, содержащей внешний элемент управления.

Таким образом, страница содержит внешний элемент управления, содержащий внутренний элемент управления, и странице требуется доступ к свойствам внутреннего элемента управления.

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

То, что я хотел бы сделать, это добавить свойство в Outer Control, которое возвращает сам Inner Control, чтобы Page мог обращаться к его свойствам напрямую:

(в коде для внешнего управления):

public UserControls_InnerControl InnerControl { get { return this.ctlInnerControl; } }

Но когда я строю сайт, я получаю:

Тип 'UserControls_InnerControl' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку 'App_Web_fc5rstgb, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = null'.

Какого черта? Я работаю программно с экземплярами пользовательских элементов управления все время (например, динамически добавляя их к другим элементам управления), и я никогда раньше не видел этого.

Что я могу сделать?

Edit: Интересно, что это не свойство в OuterControl, которое предоставляет InnerControl, который вызывает исключение. Это код в странице, который использует это свойство, что ошибки.

1 Ответ

1 голос
/ 09 декабря 2010

Попробуйте добавить на страницу, которая обращается к внутреннему контролю, следующее:

<% @ Register Src = "UserControls_InnerControl.ascx" TagName = "uc" TagPrefix = "uc1"%>
<% @ Reference Control = "~ / InnerControl.ascx"%>

Исправьте пути в соответствии с вашим приложением.

Привет

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