web-dev-qa-db-fra.com

Balises "spéciales" ASP.NET

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, alors j'ai du mal à chercher plus d'informations. En prime, quelqu'un peut-il me donner un aperçu rapide de toutes les "balises spéciales" possibles et de ce que chacune d'elles fait (ou m'indique une ressource)?

215
Andy White

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

  • <%@ %> Est un Directive pour les pages Web ASP.NET . Utilisé pour les pages et les contrôles pour configurer les paramètres du compilateur page/contrôle (<%@ Control Inherits="MyParentControl" %>).
    • <%@ %> Est également un directive d'application . Utilisé pour spécifier les paramètres spécifiques à l'application pour global.asax. Distinct des directives de page car il utilise uniquement un jeu de balises différent.
  • <% %> Est un Bloc de rendu de code (pour le code en ligne) . Une des 4 formes de Blocs de code incorporés . Utilisé pour l'inclusion de code côté serveur dans la méthode Render()] (<% x = x + 1; %>) De la classe générée. Format: simple/multiligne ou multiple (par exemple, if/then/else Entrecoupé de html), mais ne peut pas être utilisé pour déclarer des fonctions.
  • <%= %> Est un Code Render Block (pour les expressions en ligne) . Utilisé comme raccourci pour <%Response.Write(value)%>
  • <%: %> (Officieusement un " Code de codage HTML ") est identique à la version précédente, mais la sortie est codée en HTML.
  • <%# %> Est un expression de liaison de données . Utilisé pour la liaison unidirectionnelle (en lecture seule) ou bidirectionnelle (modifiable) via Eval, Xpath, Bind ou des expressions (par exemple, la valeur sélectionnée d'un menu déroulant) contrôle). Lie les expressions aux propriétés de contrôle liées aux données par le biais de la balise d'attribut du contrôle ou en tant que balise séparée qui génère une instance DataBoundLiteralControl avec la valeur de sa propriété Text. Les expressions sont évaluées par un gestionnaire d'événements DataBinding pour le contrôle.
  • <%#: %> Est un expression de liaison de données codée HTML (nouveauté d'ASP.NET 4.5). Il combine les fonctionnalités de <%# %> Et de <%: %>.
  • <%$ %> 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, ConnectionStrings ou Resources (ou votre propre extension personnalisée , par exemple pour utiliser des propriétés code-behind). Ces affectations sont ajoutées à la méthode OnInit() de la classe générée.
  • <%-- --%> Est un Commentaire de serveur . Utilisé pour exclure le contenu de la compilation (et générera donc des erreurs si un contrôle commenté est référencé dans code-behind). Contrairement aux commentaires html, le contenu ne sera pas inclus dans la sortie.
  • <!-- #Include ... --> Est un Directive d'inclusion côté serveur . Utilisé pour insérer le contenu d'un fichier dans la page, le fichier de 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 Code Declaration Block , la forme finale du bloc de code incorporé.

<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. Celles-ci ont uniquement été fournies "principalement pour préserver la compatibilité avec les versions antérieures ASP technologie" = et ne sont pas recommandés pour une utilisation.

328
Sedat Kapanoglu

Pas de réponse pour votre question de nom, mais la page MSDN "Syntaxe de page ASP.NET" est très 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 <%# ... %> ne figurait pas dans la liste, mais bien sûr, il l’est sous Expressions de liaison de données. Doh.

7
Jon Skeet

J'ai toujours trouvé que cette page de démarrage rapide était très utile chaque fois que je doutais de 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, dont le IIRC est détaillé ailleurs dans le Quickstart.

Bien entendu, cela concerne ASP.NET 2.0.

6
Cerebrus

Les gars de Microsoft les appellent parfois "nuggets" ou "nuggets de code".

6
Matth

J'ai aussi entendu parler de ces "vingues", notamment sur le podcast StackOverflow.

0
Chris Moschini