【发布时间】:2010-10-25 13:58:49
【问题描述】:
下面有人能解释一下asp.Net的工作原理吗?
我在一个 aspx 标记中有 2 个单独的代码块 asp.Net 表达式,中间有一个 html 内容(下例中的 span 元素)。
在第一个代码块中,有“i”作为 for 循环的增量变量。
然后代码块被切割成 html 内容。
另一个代码块表达式被打开,但正如我所见,我可以到达在前一个代码块中声明的“i”变量。
那么,asp.net 如何处理 - 编译 - 标记中声明的代码块 experrions 片段?它是否会检查分号并生成一些匿名方法,这些方法最终会导致对 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>
【问题讨论】:
-
我建议你编译一个aspx-page(已经编译好了),然后用reflector看看。您可以使用 aspnet_compiler.exe 进行编译(保留:类似名称),或者只是访问该页面,然后尝试在 asp.net 的临时文件中找到它。那将解释很多:)
标签: .net asp.net compiler-construction codeblocks