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?

Était-ce utile?

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.

scroll top