@ Register

Aktualisiert: November 2007

Erstellt eine Zuordnung zwischen einem Tagpräfix und einem benutzerdefinierten Steuerelement. Dies stellt eine bequeme Möglichkeit für Entwickler dar, in ASP.NET-Anwendungsdateien (z. B. Webseiten, Benutzersteuerelementen und Masterseiten) auf benutzerdefinierte Steuerelemente zu verweisen.

<%@ Register tagprefix="tagprefix"
   namespace="namespace"
   assembly="assembly" %>
<%@ Register tagprefix="tagprefix"
   namespace="namespace" %>
<%@ Register tagprefix="tagprefix"
   tagname="tagname"
   src="pathname" %>

Attribute

  • assembly
    Die Assembly, in der sich der Namespace befindet, der dem tagprefix-Attribut zugeordnet ist.

    Tipp

    Der Assemblyname darf keine Dateierweiterung enthalten. Beachten Sie außerdem, dass der ASP.NET-Parser bei fehlendem assembly-Attribut davon ausgeht, dass im Ordner App_Code der Anwendung Quellcode vorhanden ist. Wenn Sie den Quellcode eines Steuerelements auf einer Seite registrieren möchten, ohne ihn zu kompilieren, legen Sie den Quellcode im Ordner App_Code ab. Zur Laufzeit kompiliert ASP.NET Quelldateien im Ordner App_Code dynamisch.

  • namespace
    Der Namespace des benutzerdefinierten Steuerelements, das registriert wird.

  • src
    Der Speicherort (relativ oder absolut) der deklarativen ASP.NET-Benutzersteuerelemente-Datei, die mit dem tagprefix:tagname-Paar verknüpft wird.

  • tagname
    Ein beliebiger Alias, der einer Klasse zugeordnet werden soll. Dieses Attribut wird nur bei Benutzersteuerelementen verwendet.

  • tagprefix
    Ein beliebiger Alias, der einen Verweis auf den Namespace des Markups in Kurznotation bereitstellt, das in der Datei mit der Direktive verwendet wird.

Hinweise

Durch Einfügen der @ Register-Direktive in einer Seite oder einem Benutzersteuerelement können Sie benutzerdefinierte Server- oder Benutzersteuerelemente mit deklarativer Syntax für benutzerdefinierte Serversteuerelemente entwerfen.

Tipp

Sie können benutzerdefinierte Steuerelemente auch auf allen Seiten einer Anwendung registrieren, indem Sie das controls-Element für pages (ASP.NET-Einstellungsschema) in der Datei Web.config verwenden.

Sie sollten die @ Register-Direktive in den folgenden Situationen verwenden:

  • Um ein benutzerdefiniertes Serversteuerelement deklarativ einer Webseite, einem Benutzersteuerelement, einer Masterseite oder einer Skindatei hinzuzufügen (siehe Übersicht über ASP.NET-Designs und ASP.NET-Skins).

  • Um ein Benutzersteuerelement deklarativ einer Webseite, einem Benutzersteuerelement, einer Masterseite oder einer Skindatei hinzuzufügen.

Tipp

Der tagprefix-Wert "mobile" wird von ASP.NET verwendet, um die mobilen Websteuerelemente im System.Web.UI.MobileControls-Namespace zu identifizieren. Nach Möglichkeit sollten Sie dieses Präfix für Steuerelemente nicht verwenden.

Wenn Sie die @ Register-Direktive verwenden, um auf ein Steuerelement zu verweisen, können Sie den Code für das Steuerelement an den folgenden Speicherorten ablegen:

  • Als Quellcode im Ordner App_Code der Anwendung, wo er zur Laufzeit dynamisch kompiliert wird. Diese Option empfiehlt sich während der Entwicklung. Wenn Sie sich für diese Option entscheiden, verwenden Sie nicht das assembly-Attribut in der @ Register Direktive.

  • Als kompilierte Assembly im Ordner Bin der Anwendung. Diese Option wird in der Regel für bereitgestellte Webanwendungen verwendet.

  • Als kompilierte und signierte Assembly im globalen Assemblycache (GAC). Dies ist eine häufig gewählte Option, wenn Sie ein kompiliertes Steuerelement für mehrere Anwendungen freigeben möchten. Sie können im GAC auf ein Steuerelement verweisen, indem Sie dem assembly-Attribut eine Kennzeichnungszeichenfolge zuweisen. Diese Zeichenfolge bestimmt die für das Steuerelement erforderlichen Details, einschließlich seines vollqualifizierten Typnamens, seiner Version, seines öffentlichen Schlüsseltokens und seiner Kultur. Die folgende erfundene Zeichenfolge veranschaulicht einen Verweis auf ein benutzerdefiniertes Steuerelement im GAC:

    <%@ Register  tagprefix="custom"
         namespace="Mycompany.namespace"
         assembly="Mycompany.namespace.control, Version=1.2.3.4, 
            PublicKeyToken=12345678abcdefgh, Culture=neutral"  %>
    

    Weitere Informationen über Verweise auf Assemblys finden Sie unter add-Element für assemblies für compilation (ASP.NET-Einstellungsschema).

Verwenden Sie für deklarative Benutzersteuerelemente das tagname-Attribut, das tagprefix-Attribut und das src-Attribut. Die ersten beiden Attribute werden beim Deklarieren des Steuerelements auf der Seite stets zusammen verwendet und durch einen Doppelpunkt voneinander getrennt (tagprefix:tagname). Sie können mehrere Namespaces dem gleichen tagname zuordnen, wie im folgenden Beispiel:

<% @Register tagprefix="tag1" namespace="MyNamespace1"/>
<% @Register tagprefix="tag1" namespace="MyNamespace2"/> 

Der src-Attributwert kann ein relativer oder ein absoluter Pfad zur Quelldatei des Benutzersteuerelements im Stammverzeichnis der Anwendung sein. Für die einfachere Verwendung empfiehlt sich ein relativer Pfad. Angenommen, alle Benutzersteuerelementdateien der Anwendung werden im Verzeichnis \Usercontrol gespeichert, das ein Unterverzeichnis des Anwendungsstamms ist. Um das in der Datei Usercontrol1.ascx enthaltene Benutzersteuerelement einzuschließen, fügen Sie Folgendes in die @ Register-Direktive ein:

Src="~\usercontrol\usercontrol1.ascx" 

Die Tilde (~) stellt das Stammverzeichnis der Anwendung dar.

Tipp

Wenn sich das Benutzersteuerelement in demselben Verzeichnis wie die Seite befindet, in der es enthalten ist, sollte das src-Attribut den Namen und die Erweiterung der ASCX-Datei als Wert erhalten.

Verwenden Sie zum Einfügen benutzerdefinierter Serversteuerelemente, die Sie für die Verwendung in der Anwendung in eine DLL kompiliert haben, das tagprefix-Attribut mit dem assembly-Attribut und dem namespace-Attribut. Wenn Sie das namespace-Attribut nicht angeben oder ihm eine leere Zeichenfolge ("") zuweisen, tritt ein Parserfehler auf.

Warnung

Wenn Sie ein benutzerdefiniertes Serversteuerelement entwickeln, müssen Sie es in einen Namespace aufnehmen. Andernfalls kann von einer ASP.NET-Seite aus nicht darauf zugegriffen werden. Weitere Informationen zum Entwickeln benutzerdefinierter ASP.NET-Serversteuerelemente finden Sie unter Entwickeln von benutzerdefinierten ASP.NET-Serversteuerelementen.

Beispiel

Im folgenden Codebeispiel werden mithilfe von @ Register-Direktiven tagprefix-Aliase und tagname-Aliase deklariert. Des Weiteren wird ein src-Attribut zugewiesen, um in einer Webseite auf ein Benutzersteuerelement zu verweisen. Der erste Teil des Codes ist ein einfaches Benutzersteuerelement, das aus einem ASP.NET-Calendar-Steuerelement besteht. Der zweite Teil des Codes ist eine Seite, die das Steuerelement hostet. Beachten Sie, dass das tagprefix-Attribut einen beliebigen Präfixwert für die Verwendung mit dem Tag zuweist. Das tagname-Attribut verwendet den Wert des Klassennamens, der dem Benutzersteuerelement zugeordnet ist, obwohl dieses Attribut jeden beliebigen Zeichenfolgenwert annehmen kann. Es muss also nicht der Klassenname des Steuerelements verwendet werden, auf das verwiesen wird. Das src-Attribut zeigt auf die Quelldatei des Benutzersteuerelements und wird relativ zum Stammordner der Anwendung angegeben. Innerhalb des Textteils der Seite wird mithilfe des Präfixes, eines Doppelpunkts und des Tagnamens in der Form <uc1:CalendarUserControl runat="server" /> auf das Benutzersteuerelement verwiesen.

<%@ Control ClassName="CalendarUserControl" %>
<asp:calendar id="Calendar1" runat="server" />


<%@ Page %>
<%@ register tagprefix="uc1" 
    tagname="CalendarUserControl" 
    src="~/CalendarUserControl.ascx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Calendar Page</title>
</head>
<body>
  <form id="form1" runat="server">
    <uc1:calendarusercontrol runat="server" />
  </form>
</body>
</html>

Siehe auch

Konzepte

Übersicht über die Syntax von ASP.NET-Webseiten

Referenz

Direktivensyntax

Weitere Ressourcen

ASP.NET-Benutzersteuerelemente