Quelqu'un peut-il expliquer le principe de fonctionnement de asp.Net ci-dessous?Comment est-il possible d'atteindre une variable à partir d'une expression de bloc de code différente de celle du bloc où la variable a été déclarée?
J'ai 2 expressions asp.Net de bloc de code séparées dans un balisage aspx, avec un contenu html entre (élément span dans l'exemple ci-dessous).
Dans le premier bloc de code, il y a "i" comme variable d'incrémentation pour la boucle pour.
Ensuite, le bloc de code est coupé avec un contenu html.
Et une autre expression de bloc de code est ouverte mais comme je le vois, je peux atteindre la variable "i" qui a été déclarée dans le bloc de code précédent. Donc, comment asp.net gère -compile-les morceaux d'expériences de blocs de code déclarés dans la marque? Vérifie-t-il les points-virgules et génère-t-il des méthodes anonymes qui aboutiront à de nombreux appels à Response.Write à la dernière place?
Merci,
<p>
<%for (int i = 0; i < 30; i++)
{
Response.Write("Some text here");
%>
<span> ______________________________ </span> <%--So how this line is processed
by ASP.Net so that it is embedded
in the for loop as Response.Write
method's parameter?--%>
<%
Response.Write(i*(i+1));
Response.Write("<br />");
}%>
</p>
Je vous recommande de compiler une page ASPX (il est compilé), puis utiliser un réflecteur pour jeter un coup d'oeil. Vous pouvez soit compiler avec aspnet_compiler.exe (réservation: nom similaire), ou simplement accéder à la page, puis essayez de le trouver dans les fichiers temporaires d'asp.net. Cela va expliquer beaucoup alors :) – Onkelborg