<% $, <% @, <% =, <% #… Was ist los?

211

Ich habe sowohl in klassischem ASP als auch in ASP.NET programmiert und sehe im Markup verschiedene Tags für serverseitigen Code.

Ich bin kürzlich auf einen guten Blog auf MSDN gestoßen , der den Unterschied zwischen:

  • <%= (Prozentsatz zusammen mit Gleichheitszeichen) und
  • <%# (Prozentzeichen und Hash / Pfund / Oktothorpe)

( <%#wird nur bei Datenbindung <%=ausgewertet und beim Rendern ausgewertet), aber ich sehe auch:

  • <%$ (Prozent und Dollarzeichen) und
  • <%@ (Prozentzeichen und am Symbol).

Ich glaube, <%@lädt Dinge wie Assemblys und <%$lädt vielleicht Dinge aus Konfigurationsdateien? Ich bin mir nicht sicher.

Ich habe mich nur gefragt, ob jemand all dies für mich klären und möglicherweise erklären könnte, warum es wichtig ist, so viele verschiedene Tags zu erstellen, die scheinbar einen ähnlichen Zweck haben.

Aaron
quelle
72
Ich bin froh, dass du fragst, weil es sehr schwer zu googeln ist;)
Nicolas Dorier
8
Für Google unmöglich!
jdbosley
<%#wird häufig mit verwendet eval, muss aber nicht: Sie können damit jeden serverseitigen Code ausführen, vorausgesetzt, Sie führen ihn Page.DataBind()auf der enthaltenen Seite oder ihrer Masterseite aus. Es scheint , dass dies die einzige Möglichkeit ist , falls Sie wollen „Inject“ Server - seitigen Code in Attribute der Server - Seite Steuerelemente wie <asp:TextBox, <asp:LinkButtonoder sogar ein <input runat="server">.
Gilad Barner
1
@jdbosley Ich habe gegoogelt "<%=" "<%:""<%@" "<%#"und es hat mich hierher geschickt.
Rudey
2
@ RuudLenders, Glück für Sie und gute Arbeit Google. Im Jahr 2014 ergab die Suche nach diesen Tags keine qualitativ hochwertigen Ergebnisse.
jdbosley

Antworten:

296
Jose Basilio
quelle
Ich denke, das liegt daran, dass es eine akzeptierte Antwort ist, aber der Versuch, den Link zu bearbeiten, hat nicht funktioniert. Hier ist der Link, den ich über die Auswertung des Ausdrucks "<% $" eingefügt habe
John MacIntyre
6
Gibt es einen Namen für all diese? Wie heißen diese als Gruppe?
Vippy
9
@ Vippy Sie werden Bienenstiche genannt .
Ian Boyd
1
@Lankymart Früheste Verwendung, die ich finden kann, ist September 2008
Ian Boyd
1
@Vippy MS nennt sie Eingebettete Codeblöcke "Bienenstiche" ist ein inoffizieller Begriff.
Shiggity
5

Sie haben zwei davon behandelt (<% # wird nur bei Datenbindung ausgewertet und <% = wird beim Rendern ausgewertet), und die Antwort für " <%@" lautet, dass es sich um Compiler-Direktiven handelt (dh um Dinge, die Sie anlegen würden) Befehlszeile eines Compilers).

Ich weiß nicht über " <%$".

Michael Burr
quelle