<% $, <% @, <% =, <% #… Quel est le problème?

211

J'ai programmé à la fois en ASP classique et en ASP.NET, et je vois différentes balises à l'intérieur du balisage pour le code côté serveur.

J'ai récemment rencontré un bon blog sur MSDN qui fait la différence entre:

  • <%= (pourcentage avec signe égal) et
  • <%# (signe de pourcentage et hachage / livre / octothorpe)

( <%#est évalué uniquement à databind, et <%=est évalué au rendu), mais je vois aussi:

  • <%$ (pourcentage et signe dollar) et
  • <%@ (signe de pourcentage et symbole).

Je crois que <%@charge des choses comme des assemblages et peut-être <%$charge des choses à partir de fichiers de configuration? Je ne suis pas trop sûr.

Je me demandais simplement si quelqu'un pourrait clarifier tout cela pour moi et peut-être expliquer pourquoi il est important de créer autant de balises différentes qui semblent avoir un objectif similaire?

Aaron
la source
72
Je suis content que vous demandiez, car c'est très difficile de google;)
Nicolas Dorier
8
Impossible pour Google!
jdbosley
<%#est souvent utilisé avec eval, mais ce n'est pas obligatoire: vous pouvez l'utiliser pour exécuter n'importe quel code côté serveur, à condition que vous exécutiez Page.DataBind()sur la page contenant ou sa page maître. Il semble que ce soit votre seule option au cas où vous voudriez "injecter" du code côté serveur dans les attributs des contrôles côté serveur tels que <asp:TextBox, <asp:LinkButtonou même a <input runat="server">.
Gilad Barner
1
@jdbosley J'ai googlé "<%=" "<%:""<%@" "<%#"et cela m'a envoyé ici.
Rudey
2
@RuudLenders, bonne chance pour vous et bon travail Google. En 2014, la recherche de ces balises n'a pas donné de résultats de bonne qualité.
jdbosley

Réponses:

296
Jose Basilio
la source
Je suppose que c'est parce que c'est une réponse acceptée, mais essayer de modifier / w le lien n'a pas fonctionné. voici le lien que j'ai essayé de mettre sur l'évaluation de l'expression "<% $": msdn.microsoft.com/en-us/library/d5bd1tad.aspx
John MacIntyre
6
Y a-t-il un nom pour tout cela? Comment sont-ils appelés en tant que groupe?
Vippy
9
@Vippy On les appelle des piqûres d'abeilles .
Ian Boyd
1
@Lankymart La première utilisation que je peux trouver est septembre 2008
Ian Boyd
1
@Vippy MS les appelle des blocs de code intégrés "Bee stings" est un terme non officiel.
shiggity
5

Vous en avez couvert 2 (<% # est évalué uniquement à databind, et <% = est évalué à render), et la réponse pour " <%@" est que ce sont des directives du compilateur (c'est-à-dire, des trucs comme ce que vous mettriez sur la ligne de commande d'un compilateur).

Je ne sais pas pour " <%$".

Michael Burr
la source