<% $, <% @, <% =, <% # ... quel est le problème?
-
12-09-2019 - |
Question
Je l'ai programmé dans les deux ASP classique et ASP.NET, et je vois différentes balises à l'intérieur du balisage pour le code côté serveur.
Je suis récemment tombé sur un bon blog sur MSDN qui va sur la différence entre:
-
<%=
(pourcentage avec signe égal) et -
<%#
(pour cent signe et hachage / livre / dièse)
(<%#
est évaluée seulement à DataBind et <%=
est évalué à rendre), mais je vois aussi:
-
<%$
(pour cent et signe dollar) et -
<%@
(signe pour cent et au symbole).
Je crois que les charges de <%@
des choses comme des assemblages et charges peut-être <%$
choses à partir de fichiers de configuration? Je ne suis pas trop sûr.
Je me demandais 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, apparemment, ont un objectif similaire?
La solution
-
<% %>
- est pour le code en ligne (en particulier le flux logique) -
<%$ %>
- est évaluation (comme les variables de ressources) des expressions -
<%@ %>
- est pour les directives Page , assemblées enregistrement, namespaces importation, etc. -
<%= %>
- est sténographie pourResponse.Write
(voir ) -
<%# %>
- est utilisé pour les données de .
-
<%: %>
- est sténographie pour Response.Write (Server.HTMLEncode ()) ASP.net 4.0 + -
<%#: %>
- est utilisé pour les expressions de liaison de données et est automatiquement HTMLEncoded<%-- --%>
- est pour commentaires côté serveur de rel="noreferrer">
Autres conseils
Vous avez couvert 2 d'entre eux (<% # est évaluée seulement à DataBind, et <% = est évalué à rendre), et la réponse pour « <%@
» est que c'est des directives du compilateur (ie., Des trucs comme ce que vous « D mis sur la ligne de commande d'un compilateur).
Je ne sais pas "<%$
".