ASP.NET @Register vs. @Reference - PullRequest
       24

ASP.NET @Register vs. @Reference

29 голосов
/ 30 января 2011

Я работаю со ссылками на элементы управления на моей странице ASPX, и мне интересно, в чем разница между этими двумя директивами страницы.

@ Ссылка @ Регистрация

Ответы [ 2 ]

21 голосов
/ 30 января 2011

@Register в основном используется для регистрации префиксов тегов до декларативно использование элементов управления на странице.

<%@ Register tagprefix="my" namespace="MyNamespace" %>

<my:CustomControl runat=server />

@Reference в основном используется для ссылкина страницу или пользовательский элемент управления (по имени файла или виртуальному пути) для программно ссылаются на участников страницы или элемента управления.

<%@ Reference Control="MyControl.ascx" %>

<%  MyControl ctrl = (MyControl) Page.LoadControl("MyControl.ascx");
    ctrl.CustomProperty = "..."; //REFERENCE directive is needed to access property
%>
18 голосов
/ 30 января 2011

@Register - наиболее часто используемая директива. Вы используете это, когда хотите декларативно использовать пользовательский элемент управления на своей странице aspx или ascx. @Register связывает элемент управления с определенным префиксом, и вы можете использовать его в своей разметке.

@Reference указывает ASP.NET компилировать другой элемент управления только при компиляции страницы aspx или ascx. Это гарантирует, что он доступен во время выполнения и может быть добавлен в иерархию управления программным путем. Это менее распространено, поскольку динамическое изменение пользовательских элементов управления во время выполнения не является обычным явлением.

Вот хороший пост в блоге об этом.

http://weblogs.asp.net/johnkatsiotis/archive/2008/08/13/the-reference-directive.aspx

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