ASP.NET "spezielle" Tags


232

Wie lautet der offizielle Name für die "speziellen" ASP.NET-Tags wie folgt:

<%# %>
<%= %>
<%@ %>
<%$ %>

Ich kann den konzeptionellen oder bekannten Namen für diese nicht herausfinden, daher habe ich Probleme, nach weiteren Informationen zu suchen. Kann mir jemand als Bonus einen kurzen Überblick über alle möglichen "speziellen Tags" geben und darüber, was jeder von ihnen tut (oder mich auf eine Ressource verweisen)?


1
Microsoft nennt sie auch eingebettete Codeblöcke, wenn sie Code enthalten.
Robert Harvey

Antworten:


350

Der offizielle Name lautet " serverseitige Skripttrennzeichen " oder " ASP.NET-Inline-Ausdrücke ". Das Dialogfeld zur Hervorhebung der Syntax-Hervorhebungseinstellungen in Visual Studio 2008 ruft diese "HTML Server-Side Script" auf. Microsoft-Leute nennen sie in ihren Blogs "Code-Nuggets".

  • <%@ %>ist eine Richtlinie für ASP.NET-Webseiten . Wird für Seiten und Steuerelemente zum Konfigurieren der Einstellungen des Seiten- / Steuerungs-Compilers verwendet ( <%@ Control Inherits="MyParentControl" %>).
    • <%@ %>ist auch eine Anwendungsrichtlinie . Wird verwendet, um anwendungsspezifische Einstellungen für global.asax festzulegen. Unterscheidet sich von den Seitenanweisungen, da nur ein anderer Tag-Satz verwendet wird.
  • <% %>ist ein Code-Renderblock (für Inline-Code) . Eine von 4 Formen eingebetteter Codeblöcke . Wird zum Einfügen von serverseitigem Code in die Render()Methode ( <% x = x + 1; %>) der generierten Klasse verwendet. Format: einfach / mehrzeilig oder mehrfach verknüpft (z. B. if/then/elsemit HTML durchsetzt), kann jedoch nicht zum Deklarieren von Funktionen verwendet werden.
  • <%= %>ist ein Code-Renderblock (für Inline-Ausdrücke) . Wird als Abkürzung für verwendet<%Response.Write(value)%>
  • <%: %>(inoffiziell ein " HTML-Codierungscodeblock ") ist derselbe wie zuvor, aber die Ausgabe ist HTML-codiert.
  • <%# %>ist ein datenbindender Ausdruck . Wurde für den Einweg (Read - only) oder Zwei-Wege (aktualisierbar) -Bindung durch Eval, Xpath, Bind, oder Ausdrücke (zB des ausgewählten Wert einer Dropdown-Kontrolle). Bindet Ausdrücke an datengebundene Steuerelementeigenschaften über das Attribut-Markup des Steuerelements oder als separates Tag, das eine DataBoundLiteralControlInstanz mit dem Wert in seiner TextEigenschaft generiert . Ausdrücke werden von einem DataBindingEreignishandler für das Steuerelement ausgewertet .
  • <%#: %>ist ein HTML-codierter Datenbindungsausdruck (neu in ASP.NET 4.5). Es kombiniert die Funktionalität von <%# %>und <%: %>.
  • <%$ %>ist ein ASP.NET Expression Builder . Wird für die Laufzeitausdrucksbindung für Steuerelementeigenschaften über die Server-Tag-Attribute verwendet. Wird mit AppSettings, ConnectionStringsoder Resources(oder Ihrer eigenen benutzerdefinierten Erweiterung verwendet , um beispielsweise CodeBehind-Eigenschaften zu verwenden). Diese Zuweisungen werden der OnInit()Methode der generierten Klasse hinzugefügt .
  • <%-- --%>ist ein serverseitiger Kommentar . Wird verwendet, um den Inhalt von der Kompilierung auszuschließen (und generiert so Fehler, wenn in CodeBehind auf ein auskommentiertes Steuerelement verwiesen wird). Im Gegensatz zu HTML-Kommentaren wird der Inhalt nicht in die Ausgabe aufgenommen.
  • <!-- #Include ... -->ist eine serverseitige Include-Richtlinie . Wird verwendet, um den Inhalt einer Datei in die Seite, das Steuerelement oder die globale Datei einzufügen. Nützlich, wenn ein Benutzersteuerelement zu viel ist und eine Masterseite nicht verwendet werden kann.

Es gibt auch einen Code Declaration Block , das endgültige Embedded Code Block-Formular.

<script runat="server">
bool IsTrue() {
  return false;
}
</script>

Dies wird verwendet, um der aus dem ASP.NET-Markup generierten Klasse zusätzliche Mitglieder (Methoden usw.) hinzuzufügen. Diese wurden bisher nur "hauptsächlich zur Wahrung der Abwärtskompatibilität mit älteren ASP-Technologien" bereitgestellt und werden für die Verwendung nicht empfohlen.


1
Ich glaube, es gibt ein <% $ ...%>, das Daten gegen Appsettings / Verbindungszeichenfolgen bindet.
Schwester

Davon habe ich noch nichts gehört. Hast du eine Quelle?
Sedat Kapanoglu

3
Sie heißen ASP.NET-Ausdrücke. Siehe msdn.microsoft.com/en-us/library/d5bd1tad.aspx
elo80ka

7

Keine Antwort auf Ihre Namensfrage, aber die MSDN-Seite "ASP.NET-Seitensyntax" ist ziemlich gut (oder besser gesagt, das ist die Seite der obersten Ebene; die Seiten darunter enthalten weitere Informationen).

EDIT: Ich hatte vorher gedacht, dass dies <%# ... %>nicht in der Liste enthalten ist, aber natürlich unter datenbindenden Ausdrücken. Doh.


Dieser Link funktioniert derzeit nicht. Sie müssen zuvor eine .NET Framework-Version auswählen.
Sam

1
@ Sam: Ah, danke - ich denke, es wurde aus irgendeinem Grund zurückgezogen, als .NET 4.5 herauskam. Ich habe den Link bearbeitet.
Jon Skeet

1
Ich dachte, Jon Skeet macht keine Webentwicklung ...!
CodeArtist

6

Ich habe diese QuickStart-Seite immer als sehr nützlich empfunden, wenn ich Zweifel an der serverseitigen Syntax habe. Es enthält 8 verschiedene Markup-Stile und illustrative Beispiele für jeden einzelnen sowie Erläuterungen zu den Vor- und Nachteilen.

Die Direktive auf Seitenebene, die IIRC an anderer Stelle im Schnellstart ausführlich beschreibt, wird jedoch nicht erwähnt.

Dies ist natürlich für ASP.NET 2.0 relevant.


Dies ist eine reine Linkantwort. Bitte geben Sie relevante Informationen an.
zzzzBov

1
Link ist abgestanden :-(
Roland


6

Microsoft-Leute nennen sie manchmal "Nuggets" oder "Code-Nuggets".


0

Ich habe auch diese sogenannten "V-Stiche" gehört, einschließlich im StackOverflow-Podcast.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.