如何从与声明变量的块不同的代码块表达式到达变量?

时间:2010-10-25 13:58:49

标签: .net asp.net compiler-construction codeblocks

有人可以在下面解释asp.Net的工作原理吗?

我在aspx标记中有两个独立的代码块asp.Net表达式,其中包含html内容(下面示例中的span元素)。

在第一个代码块中,“i”作为 for 循环的增量变量。

然后用html内容剪切代码块。

另一个代码块表达式被打开但是我看到我可以到达在前一个代码块中声明的“i”变量。

那么,asp.net如何处理 - 编译 - 标记中声明的代码块实验部分?它是否检查分号并生成一些匿名方法,最终会在最后一次调用Response.Write?

谢谢,

<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>

2 个答案:

答案 0 :(得分:1)

您将C#代码的范围与内联ASPX标记混淆。无论代码块内是什么,ACTUAL代码块都在大括号{}之间,在上面的情况下,HTML代码仍在单个块中。

只需查看打开和关闭花括号,那些定义代码块,%符号插入和退出HTML / C#代码。

答案 1 :(得分:0)

您引用的行未使用其上方的Response.Write调用。它只是网页中的嵌入文本。

<span>标记不是C#代码的“访客”; C#代码是ASP网页的访客(<span>标签是其中的一部分)。