Comment <% $%> et <% #%> travail dans ASP.NET?
-
26-10-2019 - |
Question
J'utilisais ASP.NET Web Forms et ASP.NET MVC pour une certaine période de temps.
<%= %>
en vue moyenne Response.Write()
, <%: %>
introduit dans MVC ajoute html Évasion.
Dans SqlDataSource concepteur de contrôle génère quelque chose comme ceci ConnectionString="<%$ ConnectionStrings:FooConnectionString %>"
et répéteur vous utilisez <%# Eval("") %>
sytax.
Ma question est ce que font exactement les balises <%$ %>
et <%# %>
, quelles méthodes ils TRADUIT dans et comment ils se comportent?
La solution
<%$ %>
est la syntaxe de l'expression .
Il y a quelques construit dans des raccourcis pour AppSettings, Ressources et ConnectionStrings. Vous pouvez également écrire votre propre .
<%# %>
est la syntaxe expression databinding.
Il est utilisé dans les contrôles databound pour résoudre les valeurs des propriétés de l'objet étant lié.
Autres conseils
Je clipsée ce texte d'un livre (je ne me souviens pas quel livre) il y a un moment que je pensais que l'a expliqué la syntaxe <%# %>
bien -
Ceux qui sont familiers avec les applications ASP classiques pourrait penser que les <% #%> syntaxe semble très familier. Il est le même but, mais vous devez vous assurer que vous ne confondez pas les deux car cela pourrait entraîner l'application de fonctionner correctement. Alors que dans ASP (Et ASP.NET), la syntaxe <% =%> cause tout ce qui est à l'intérieur du crochets à évaluer au moment du rendu, le <% #%> Supports unique ASP.NET sont évalués uniquement pendant la liaison. Comme vous le verrez plus loin dans cette section, la page et chaque contrôle bindable sur la page ont Procédé DataBind (). Les expressions contenues dans la liaison de données entre parenthèses (<% #%>) ne sont évaluées que lorsque DataBind du contrôle méthode est appelée.
Cela répond que la moitié de votre question, mais une excellente couverture de réponse de Rob Stevenson-Leggett tout le reste. Je pensais juste que j'ajouterais cela au moyen d'une illustration supplémentaire.
J'ai écrit un billet de blog sur les différents types d'expressions disponibles dans ASP.NET Web Forms:
expressions vs. déclarations, partie 2: (archives Internet) types de ASP.NET bloc de code
Il explique les blocs d'expression suivante:
<%$ %>
ASP.NET Expression Syntaxe, utilisée pour lier contre les paramètres d'application, les chaînes de connexion et des ressources.
<%# %>
ASP.NET syntaxe de liaison de données, évaluée uniquement lors de l'appel des données méthode de liaison de la commande.
<% %>
blocs de code, le code devient une partie de RenderMethodDelegate
. Le code doit être des déclarations. Utilisez Response.Write
quelque chose de sortie.
<%= %>
Comme ci-dessus, à l'exception du code doit être une seule expression. Il sera enveloppé dans HtmlTextWrite.Write()
.