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

问题描述 投票:0回答:2

谁能解释一下下面asp.Net的工作原理吗?

我在 aspx 标记中有 2 个独立的代码块 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>
asp.net .net codeblocks
2个回答
1
投票

您将 C# 代码的范围与内联 ASPX 标记混淆了。实际代码块位于大括号 { } 之间,无论该代码块内有什么内容,在上面的情况下,HTML 代码仍然在单个块内。

只需查找左大括号和右大括号,这些大括号定义了您的代码块,% 符号在 HTML / C# 代码中进出。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.