Balises «spéciales» ASP.NET

232

Quel est le nom officiel des balises ASP.NET "spéciales" comme ceci:

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

Je n'arrive pas à comprendre le nom conceptuel ou bien connu de ceux-ci, j'ai donc du mal à rechercher plus d'informations. En prime, quelqu'un peut-il me donner un aperçu rapide de tous les "tags spéciaux" possibles et ce que chacun d'eux fait (ou me diriger vers une ressource)?

Andy White
la source
1
Microsoft les appelle également des blocs de code intégrés s'ils contiennent du code.
Robert Harvey

Réponses:

350

Le nom officiel est " délimiteurs de script côté serveur " ou " expressions en ligne ASP.NET ". La boîte de dialogue de mise en évidence de la syntaxe de Visual Studio 2008 appelle ces «scripts côté serveur HTML». Les gars de Microsoft les appellent des "pépites de code" dans leurs blogs.

  • <%@ %>est une directive pour les pages Web ASP.NET . Utilisé pour les pages et les contrôles pour configurer les paramètres du compilateur de pages / contrôles ( <%@ Control Inherits="MyParentControl" %>).
    • <%@ %>est également une directive d'application . Utilisé pour spécifier les paramètres spécifiques à l'application pour global.asax. Différent des directives de page car il utilise uniquement un ensemble de balises différent.
  • <% %>est un bloc de rendu de code (pour le code en ligne) . L'une des 4 formes de blocs de code intégrés . Utilisé pour inclure du code côté serveur dans la Render()méthode ( <% x = x + 1; %>) de la classe générée. Format: simple / multiligne ou à liens multiples (par exemple if/then/elseentrecoupé de html) mais ne peut pas être utilisé pour déclarer des fonctions.
  • <%= %>est un bloc de rendu de code (pour les expressions en ligne) . Utilisé comme raccourci pour<%Response.Write(value)%>
  • <%: %>(officieusement un " bloc de code de codage HTML ") est le même que le précédent, mais la sortie est codée en HTML.
  • <%# %>est une expression de liaison de données . Utilisé pour une voie (lecture seule) ou à deux voies (actualisable) à travers la liaison Eval, Xpath, Bind, ou des expressions (par exemple , la valeur sélectionnée d'un contrôle déroulant). Lie les expressions aux propriétés de contrôle liées aux données via le balisage d'attribut du contrôle, ou en tant que balise distincte qui génère une DataBoundLiteralControlinstance avec la valeur sur sa Textpropriété. Les expressions sont évaluées par un DataBindinggestionnaire d'événements pour le contrôle.
  • <%#: %>est une expression de liaison de données codée HTML (nouvelle dans ASP.NET 4.5). Il combine les fonctionnalités de <%# %>et <%: %>.
  • <%$ %>est un générateur d'expressions ASP.NET . Utilisé pour la liaison d'expression d'exécution pour les propriétés de contrôle via les attributs de balise de serveur. Utilisé avec AppSettings, ConnectionStringsou Resources(ou votre propre extension personnalisée , par exemple pour utiliser le code-behind propriétés). Ces affectations sont ajoutées à la OnInit()méthode de la classe générée.
  • <%-- --%>est un commentaire côté serveur . Utilisé pour exclure le contenu de la compilation (et générera donc des erreurs si un contrôle mis en commentaire est mentionné dans le code-behind). Contrairement aux commentaires html, le contenu ne sera pas inclus dans la sortie.
  • <!-- #Include ... -->est une directive d'inclusion côté serveur . Utilisé pour insérer le contenu d'un fichier dans la page, le contrôle ou le fichier global. Utile lorsqu'un contrôle utilisateur est excessif et qu'une page maître ne peut pas être utilisée.

Il existe également un bloc de déclaration de code , le formulaire final de bloc de code intégré.

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

Ceci est utilisé pour inclure des membres supplémentaires (méthodes, etc.) à la classe générée à partir du balisage ASP.NET. Ceux-ci n'ont été fournis que "principalement pour préserver la compatibilité descendante avec les anciennes technologies ASP" et leur utilisation n'est pas recommandée.

Andy Brown
la source
1
Je crois qu'il y a un <% $ ...%> qui lie les données aux paramètres d'application / chaînes de connexion.
sisve
Je n'en ai pas entendu parler. Avez-vous une source?
Sedat Kapanoglu
3
Ils sont appelés Expressions ASP.NET. Voir msdn.microsoft.com/en-us/library/d5bd1tad.aspx
elo80ka
7

Pas de réponse à votre question de nom, mais la page MSDN "ASP.NET Page Syntax" est assez bonne (ou plutôt, c'est la page de niveau supérieur; les pages en dessous donnent plus d'informations).

EDIT: J'avais déjà pensé que cela <%# ... %>n'était pas inclus dans la liste, mais bien sûr, c'est sous les expressions de liaison de données. Doh.

Jon Skeet
la source
Ce lien ne fonctionne pas actuellement. Vous devez sélectionner une version du framework .NET avant de le faire.
Sam
1
@Sam: Ah, merci - je pense qu'il a été retiré lorsque .NET 4.5 est sorti, pour une raison quelconque. J'ai édité le lien.
Jon Skeet
1
Je pensais que Jon Skeet ne faisait pas de développement web ...!
CodeArtist
6

J'ai toujours trouvé cette page de démarrage rapide très utile, chaque fois que j'ai un doute sur la syntaxe côté serveur. Il détaille 8 styles de balisage différents et fournit des exemples illustratifs de chacun, en plus d'expliquer les avantages et les inconvénients.

Il ne mentionne cependant pas la directive au niveau de la page, que l'IIRC est détaillée ailleurs dans le Quickstart.

Bien sûr, cela concerne ASP.NET 2.0.

Cerebrus
la source
Ceci est une réponse en lien uniquement. Veuillez insérer les informations pertinentes.
zzzzBov
1
lien périmé :-(
Roland
6

Les gars de Microsoft les appellent parfois "pépites" ou "pépites de code".

Matth
la source
0

J'ai également entendu ces dénommés "piqûres en V", y compris sur le podcast StackOverflow.

Chris Moschini
la source