Подтвердить что ты не робот

ASP.NET @Register vs. @Reference

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

@Ссылка @Register

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

@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
%>