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?
asp.net
server-tags
Aaron
la source
la source
<%#
est souvent utilisé aveceval
, mais ce n'est pas obligatoire: vous pouvez l'utiliser pour exécuter n'importe quel code côté serveur, à condition que vous exécutiezPage.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:LinkButton
ou même a<input runat="server">
."<%=" "<%:""<%@" "<%#"
et cela m'a envoyé ici.Réponses:
<% %>
- est pour le code en ligne (en particulier le flux logique)<%$ %>
- sert à évaluer les expressions (comme les variables de ressource)<%@ %>
- concerne les directives Page , l'enregistrement des assemblys, l'importation d'espaces de noms, etc.<%= %>
- est un raccourci pourResponse.Write
(discuté ici )<%# %>
- est utilisé pour les expressions de liaison de données .<%: %>
- est l'abréviation de Response.Write (Server.HTMLEncode ()) ASP.net 4.0+<%#: %>
- est utilisé pour les expressions de liaison de données et est automatiquement HTMLEncoded.<%-- --%>
- est pour les commentaires côté serveurla source
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 "
<%$
".la source