Почему я могу добавить свой UserControl по src и тэгу, но не по сборке и пространству имен? - PullRequest
1 голос
/ 05 апреля 2011

У меня есть несколько UserControls, которые являются файлами .cs и расширяют WebControl. Я добавляю их на свои страницы .aspx с помощью следующего:

<%@ Register TagPrefix="uc" Namespace="AssemblyName.My.Namespace" Assembly="AssemblyName" %>

Однако я обнаружил, что мне приходится много рендерить через HtmlTextWriter. Поэтому я хотел перейти к использованию файлов .ascx для своих пользовательских элементов управления. Тем не менее, они будут отображаться только на странице, если я использую следующий синтаксис:

<%@ Register src="../../../controls/MyCustomControl.ascx" tagname="MyCustomControl" tagprefix="uc" %>

Эти элементы управления .ascx расширяют UserControl, и связанный кодовый элемент находится в том же пространстве имен, что и мои веб-элементы управления .cs.

1 Ответ

2 голосов
/ 05 апреля 2011

"У меня есть несколько пользовательских элементов управления, которые являются файлами .cs"

Это "пользовательские элементы управления" или "веб-элементы управления", а не UserControls.UserControls имеют связанную с ними разметку и наследуют UserControl.

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

Это потому, что UserControlsразделить (частично) классы, которые включают в себя некомпилированную часть (разметка).Вы можете добавить их только с помощью ссылки на сборку, и проект будет компилироваться.Однако компонент разметки не будет загружен, и вы получите среди прочего ошибки ссылки на объект во время выполнения.

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