如何'如何'语句在标记文件中工作?

时间:2014-05-25 10:38:02

标签: html asp.net .net

following有效。但为什么?

<% if (condition) { %> some html <% } %>

我希望它要么没有效果,要么只是抛出异常,因为每个部分都是无效的C#,也不是全部。

2 个答案:

答案 0 :(得分:5)

编译页面时,标记将转换为将HTML输出到响应流的命令。基本上代码变成:

Response.Write("The HTML code before");
if (condition) {
  Response.Write(" some html ");
}
Response.Write("The HTML code after");

混合代码和标记(<% int i = %>3<% ;%>)的示例将变为:

Response.Write("The HTML code before");
int i =
Response.Write("3");
;
Response.Write("The HTML code after");

答案 1 :(得分:0)

提供给&lt;%的官方名称是&#34;服务器端脚本分隔符&#34;或&#34; ASP.NET内联表达式&#34;。也称为Asp.net服务器端脚本。微软的人称他们为#34;代码块&#34;在他们的博客或工作场所。

<% %>

is for inclusion of server-side code to the Render() method 
(<% x = x + 1; %>) of the generated class.

当编译器(服务器端的.net框架编译器为asp.net)执行此代码时,它执行其中指定的操作。生成的输出将呈现为简单的HTML格式,可以呈现在Web浏览器上(如果以eval为前缀,则会显示)。

它们基本上用于让您在表示逻辑(aspx)中编写服务器端执行代码。例如:会话,调试打印,userName等,尽管visual studio IDE使用自己的UI控件可以很好地替换它们。